From: Matthias Klose Date: Tue, 17 Mar 2026 14:25:35 +0000 (+0100) Subject: elfutils (0.194-4) unstable; urgency=medium X-Git-Tag: archive/raspbian/0.194-4+rpi1^2~13 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/%22mailto:mocancezar%40gmail.com//%22mailto:i18n-csb%40linuxcsb.org/%22/%22http:/www.example.com/%22mailto:mocancezar%40gmail.com/%22mailto:i18n-csb%40linuxcsb.org/%22?a=commitdiff_plain;h=8752ee8e05188bcab7239ac6c52f3af5c75247c1;p=elfutils.git elfutils (0.194-4) unstable; urgency=medium * Apply two more patches from the trunk: - Fix const-correctness issues. - libdwfl: Work around ET_REL files with sh_addr fields set to non-zero. [dgit import unpatched elfutils 0.194-4] --- 8752ee8e05188bcab7239ac6c52f3af5c75247c1 diff --cc debian/changelog index 0000000,0000000..b00e6bb new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,1184 @@@ ++elfutils (0.194-4) unstable; urgency=medium ++ ++ * Apply two more patches from the trunk: ++ - Fix const-correctness issues. ++ - libdwfl: Work around ET_REL files with sh_addr fields set to ++ non-zero. ++ ++ -- Matthias Klose Tue, 17 Mar 2026 15:25:35 +0100 ++ ++elfutils (0.194-3) unstable; urgency=medium ++ ++ [ Sergio Durigan Junior ] ++ * d/libdebuginfod-common.postinst: Remove readonly usage when declaring ++ local variables. (LP: #2144516) ++ ++ [ Matthias Klose ] ++ * Fix PR dwz/33391, trunk: aarch64: Recognize SHT_AARCH64_ATTRIBUTES. ++ ++ -- Matthias Klose Tue, 17 Mar 2026 07:31:46 +0100 ++ ++elfutils (0.194-2) unstable; urgency=medium ++ ++ [ Mark Wielaard ] ++ * d/p/elfutils-0.194-alloc-jobs.patch: Patch for upstream bug 33580. ++ ++ [ Matthias Klose ] ++ * Update symbols file syntax. ++ * Bump standards version. ++ * Drop build dependency on gcc-multilib. Closes: #1107128. ++ * Drop bashism from debian/libdebuginfod-common.postinst (Nobuhiro Iwamatsu). ++ Closes: #1105011. ++ ++ -- Matthias Klose Sun, 15 Mar 2026 10:41:13 +0100 ++ ++elfutils (0.194-1) unstable; urgency=medium ++ ++ * New upstream version. ++ * Update symbols files. ++ * Fix some lintian warnings. ++ ++ -- Matthias Klose Wed, 29 Oct 2025 06:57:58 +0100 ++ ++elfutils (0.193-3) unstable; urgency=medium ++ ++ * Fix FTBFS for missing asm/perf_regs.h (John David Anglin). ++ Closes: #1114536. ++ * Don't build-depend on gcc-multilib on hurd-amd64. ++ ++ -- Matthias Klose Sun, 07 Sep 2025 10:59:45 +0200 ++ ++elfutils (0.193-2) unstable; urgency=medium ++ ++ * Bump debhelper version. ++ ++ -- Matthias Klose Thu, 04 Sep 2025 21:09:30 +0200 ++ ++elfutils (0.193-1) experimental; urgency=medium ++ ++ * New upstream version. ++ ++ [ Sergio Durigan Junior ] ++ * d/libdebuginfod-common.templates: Default to using debuginfod. ++ GDB has its own mechanism for detecting whether DEBUGINFOD_URLS is set ++ and asking the user if they want to use it. I don't believe we need ++ to default to not using our debuginfod service anymore. ++ ++ [ Matthias Klose ] ++ * Install usr/include/elfutils/libdwfl_stacktrace.h in libdw-dev. ++ * Bump standards version. ++ * Update libdw symbols file. ++ ++ -- Matthias Klose Fri, 02 May 2025 13:03:38 +0200 ++ ++elfutils (0.192-4) unstable; urgency=medium ++ ++ * Drop again the build dependency libimaevm-dev. ++ ++ -- Matthias Klose Tue, 22 Oct 2024 13:13:50 +0200 ++ ++elfutils (0.192-3) unstable; urgency=medium ++ ++ * Also build-depend on libjson-c-dev. ++ * Bump standards version. ++ ++ -- Matthias Klose Mon, 21 Oct 2024 17:21:03 +0200 ++ ++elfutils (0.192-2) unstable; urgency=medium ++ ++ * Build-depend on libimaevm-dev. ++ ++ -- Matthias Klose Mon, 21 Oct 2024 14:08:39 +0200 ++ ++elfutils (0.192-1) unstable; urgency=medium ++ ++ * New upstream version. ++ ++ [ Sergio Durigan Junior ] ++ * d/libdebuginfod-common.postrm: Correctly purge configuration in Debian. ++ ++ [ Matthias Klose ] ++ * Drop the riscv-retval-workaround patch. ++ * Don't package fish. ++ * Update symbols files. ++ * Refresh patches. ++ ++ -- Matthias Klose Mon, 21 Oct 2024 12:04:15 +0200 ++ ++elfutils (0.191-2) unstable; urgency=medium ++ ++ * d/control: Recommends libarchive-tools. (Closes: #1063767) ++ ++ -- Sergio Durigan Junior Sat, 13 Jul 2024 00:30:43 -0400 ++ ++elfutils (0.191-1) unstable; urgency=medium ++ ++ * New upstream version. ++ * Add translations (it, sv). Closes: #1050108, #1049367. ++ * Fix cross build failure (Helmut Grohne). Closes: #1057813. ++ ++ -- Matthias Klose Tue, 12 Mar 2024 11:42:59 +0100 ++ ++elfutils (0.190-1.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Rename libraries for 64-bit time_t transition. ++ ++ -- Michael Hudson-Doyle Thu, 29 Feb 2024 00:13:08 +0000 ++ ++elfutils (0.190-1) unstable; urgency=medium ++ ++ * New upstream version. ++ ++ -- Matthias Klose Thu, 16 Nov 2023 14:54:07 +0100 ++ ++elfutils (0.189-4) unstable; urgency=medium ++ ++ * Remove bashism in maintainer script. Closes: #999414. ++ ++ -- Matthias Klose Tue, 04 Jul 2023 11:37:16 +0200 ++ ++elfutils (0.189-3) unstable; urgency=medium ++ ++ * libelf-dev: Depend on libzstd-dev. Closes: #1040071. ++ ++ -- Matthias Klose Sun, 02 Jul 2023 09:41:46 +0200 ++ ++elfutils (0.189-2) unstable; urgency=medium ++ ++ * Use sh instead of bash in maintainer script. Closes: #999414. ++ * Add Romanian debconf templates translation (Remus-Gabriel Chelu). ++ Closes: #1031867. ++ * Fix syntax in debian/copyright (Bastian Germann). Closes: #1032126. ++ * Bump standards version. ++ ++ -- Matthias Klose Sat, 01 Jul 2023 13:35:22 +0200 ++ ++elfutils (0.189-1) experimental; urgency=medium ++ ++ * New upstream version. ++ * Refresh patches. ++ * Build-depend on libzstd-dev and zstd. ++ ++ -- Matthias Klose Tue, 11 Apr 2023 12:51:29 +0200 ++ ++elfutils (0.188-2.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Add debconf template translation ++ - Dutch translation. ++ Thanks to Frans Spiesschaert (Closes: #994141) ++ - French translation. ++ Thanks Jean-Pierre Giraud (Closes: #994667) ++ - German translation. ++ Thanks Helge Kreutzmann (Closes: #997891) ++ - Portuguese translation. ++ Thanks Américo Monteiro (Closes: #1001920) ++ - Spanish translation. ++ Thanks Camaleón (Closes: #1003517) ++ - Brazilian Portuguese translation. ++ Thanks Paulo Henrique de Lima Santana (Closes: #1025512) ++ ++ -- Helge Kreutzmann Sat, 14 Jan 2023 14:54:50 +0100 ++ ++elfutils (0.188-2) unstable; urgency=medium ++ ++ [ Bastian Germann ] ++ * d/copyright: Convert to machine-readable format, adding missing ++ licenses. (Closes: #1019937) ++ ++ -- Sergio Durigan Junior Wed, 21 Dec 2022 15:13:47 -0500 ++ ++elfutils (0.188-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * d/p/{hurd-hacks.diff,kfreebsd-debuginfod,kfreebsd-mremap-stub}: ++ Refresh patches against new upstream version. ++ * d/{libdebuginfod1,libdw1}.symbols: Add new symbols. ++ * d/rules: Remove debuginfod.service.8 during installation. ++ Currently, we don't install debuginfod.service. ++ * Rename upstream's signing key file. ++ - d/u/signing-key.asc: Rename from d/upstream-signing-key.pgp. ++ - d/s/included-binaries: Remove. ++ ++ -- Sergio Durigan Junior Sun, 13 Nov 2022 20:52:25 -0500 ++ ++elfutils (0.187-4) unstable; urgency=medium ++ ++ * Fix Ubuntu upgrade path for libdebuginfod-common. (LP: #1990638) ++ - d/libdebuginfod-common.postinst: Split Ubuntu-specific code into a ++ separate function. Clean up ucf/ucfr configuration files when ++ upgrading from libdebuginfod-common versions before 0.187-3. Create ++ links for the debuginfod shell snippets directly. ++ - d/libdebuginfod-common.postrm: Handle Debian and Ubuntu purge ++ differently. ++ ++ -- Sergio Durigan Junior Sat, 24 Sep 2022 16:34:05 -0400 ++ ++elfutils (0.187-3) unstable; urgency=medium ++ ++ * Always install debuginfod shell snippets in Ubuntu. ++ - d/libdebuginfod-common.config: Remove snippet to db_input the Ubuntu ++ question. ++ - d/libdebuginfod-common.postinst: Always install debuginfod shell ++ snippets in Ubuntu. ++ - d/libdebuginfod-common.templates: Remove ++ libdebuginfod/useubuntudebuginfod question. ++ ++ -- Sergio Durigan Junior Wed, 21 Sep 2022 19:08:05 -0400 ++ ++elfutils (0.187-2) unstable; urgency=medium ++ ++ * Pass --sysconfdir to configure and install elfutils.urls. ++ - d/rules: Pass --sysconfdir to configure; don't delete elfutils.urls. ++ - d/libdebuginfod-common.install: Adjust paths and install ++ elfutils.urls. ++ * d/rules: Cleanup debuginfod code and support Ubuntu's debuginfod. ++ * d/libdebuginfod-common.templates: New question for Ubuntu's debuginfod. ++ * d/libdebuginfod-common.config: Ask about Ubuntu's debuginfod. ++ * d/libdebuginfod-common.post{inst,rm}: Cleanup code, fix problems ++ and support Ubuntu. ++ Thanks to наб (Closes: #987787) ++ ++ -- Sergio Durigan Junior Fri, 02 Sep 2022 17:11:29 -0400 ++ ++elfutils (0.187-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Matthias Klose Wed, 04 May 2022 01:08:42 +0200 ++ ++elfutils (0.186-1build1) jammy; urgency=medium ++ ++ * No-change rebuild for ppc64el baseline bump. ++ ++ -- Łukasz 'sil2100' Zemczak Wed, 23 Mar 2022 14:51:35 +0100 ++ ++elfutils (0.186-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Don't yet install elfutils.urls. ++ * Update symbols file. ++ ++ -- Matthias Klose Wed, 17 Nov 2021 21:49:08 +0100 ++ ++elfutils (0.185-2) unstable; urgency=medium ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose Sun, 15 Aug 2021 18:27:02 +0200 ++ ++elfutils (0.185-1) experimental; urgency=medium ++ ++ * New upstream release. ++ * Refresh patches. ++ ++ -- Matthias Klose Tue, 25 May 2021 20:31:36 +0200 ++ ++elfutils (0.184-1) experimental; urgency=medium ++ ++ * New upstream release. ++ ++ -- Matthias Klose Mon, 17 May 2021 12:10:27 +0200 ++ ++elfutils (0.183-8) experimental; urgency=medium ++ ++ * libdebuginfod1: Relax dependency on libdebuginfod-common. Closes: #986375. ++ * libdebuginfod-common: Update package description. Closes: #987036. ++ * Always install the shell snippets into /etc/profile.d/. ++ ++ -- Matthias Klose Sat, 17 Apr 2021 09:58:41 +0200 ++ ++elfutils (0.183-7) experimental; urgency=medium ++ ++ [ Sergio Durigan Junior ] ++ * d/rules: Populate binary-indep with proper build instructions. ++ * d/control: Remove ${shlibs:Depends} from libdebuginfod-common. ++ ++ [ Matthias Klose ] ++ * d/rules: Move dh_install to the install target. ++ * d/rules: Add -a/-i options to the dh_ commands. ++ ++ -- Matthias Klose Thu, 15 Apr 2021 17:49:43 +0200 ++ ++elfutils (0.183-6) experimental; urgency=medium ++ ++ * d/libdebuginfod-common.install: Remove file. ++ * d/rules: ++ Implement logic to decide whether to install the debuginfod shell ++ snippets under /etc/profile.d/ based on the existence of a debuginfod ++ service available for the current distribution. This is needed mostly ++ for Ubuntu and other derivatives which don't have debuginfod services ++ available yet. ++ ++ -- Sergio Durigan Junior Fri, 26 Mar 2021 01:14:28 -0400 ++ ++elfutils (0.183-5) experimental; urgency=medium ++ ++ * d/libdebuginfod-common.install: ++ Install the debuginfod profile.d snippets under ++ /usr/share/libdebuginfod-common/ instead of directly under ++ /etc/profile.d/. ++ * d/libdebuginfod-common.config: ++ Check for the "debuginfod.sh" snippet under ++ /usr/share/libdebuginfod-common/. ++ * d/libdebuginfod-common.postinst: ++ Perform modifications in the debuginfod shell snippets that now live ++ under /usr/share/libdebuginfod-common/, before moving them (using ucf) ++ to /etc/profile.d/. (Closes: #985044) ++ * d/libdebuginfod-common.postrm: ++ New postrm file which takes care of purging the debuginfod shell ++ snippets under /etc/profile.d/. ++ * d/control: Make libdebuginfod-common depend on ucf. ++ ++ -- Sergio Durigan Junior Fri, 19 Mar 2021 15:58:25 -0400 ++ ++elfutils (0.183-4) experimental; urgency=medium ++ ++ * Apply KFreeBSD patches (Christoph Berg), not forwarded. ++ * Fix build on the Hurd. ++ ++ -- Matthias Klose Tue, 09 Mar 2021 20:10:42 +0100 ++ ++elfutils (0.183-2) unstable; urgency=medium ++ ++ * d/control: ++ - B-D on lsb-release. ++ - B-D on po-debconf. ++ - Create new libdebuginfod-common package. ++ - Add myself to Uploaders. ++ * d/rules: ++ - Use https://debuginfod.debian.net as our default service. ++ Also, revamp the code responsible for determining libdebuginfod ++ configuration flags. ++ - Invoke dh_installdebconf. ++ * d/libdebuginfod-common.templates: Create a debconf template. ++ Also, create d/po/POTFILES.in and d/po/templates.pot. ++ This template is for the question of whether the user accepts GDB or ++ another debuginfo consumer program to connect to Debian's debuginfod ++ server. ++ * d/libdebuginfod-common.config: Ask if the user accepts to use Debian's ++ debuginfod. ++ * d/libdebuginfod-common.postinst: Act upon the user's answer to the ++ debconf question. ++ If the user has accepted to use Debian's debuginfod, then the script ++ confirms the value of the DEBUGINFOD_URLS environment variable present ++ in the shell excerpts under /etc/profile.d. Otherwise, the script ++ will set the variable to an empty value, disabling the remote ++ connection to the debuginfod server. (Closes: #983434) ++ * d/libdebuginfod-common.install: Install the profile.d snippets. ++ ++ -- Sergio Durigan Junior Sun, 28 Feb 2021 21:07:16 -0500 ++ ++elfutils (0.183-1) unstable; urgency=medium ++ ++ * New upstream release. Changes compared to the snapshot: ++ - backends/ppc_initreg.c: include . ++ - NEWS and version, and copyright updates. ++ ++ -- Matthias Klose Mon, 08 Feb 2021 09:56:24 +0100 ++ ++elfutils (0.182+20210205-1) unstable; urgency=high ++ ++ * Snapshot, taken three days before the 0.183 release. Create a source ++ tarball using make dist. ++ * Make the build reproducible (Helmut Grohne). Closes: #981835, #981924. ++ ++ -- Matthias Klose Fri, 05 Feb 2021 19:07:32 +0100 ++ ++elfutils (0.182+20210203-1) unstable; urgency=medium ++ ++ * Snapshot, taken five days before the 0.183 release. ++ * Update libdebuginfod1 symbols file. ++ ++ -- Matthias Klose Wed, 03 Feb 2021 14:59:12 +0100 ++ ++elfutils (0.182-3) unstable; urgency=medium ++ ++ * Build with -flto-partition=none when building with -flto. ++ * Stop building with -fpermissive. ++ * tests/dwfl-proc-attach.c: Remove old glibc hack. ++ ++ -- Matthias Klose Wed, 06 Jan 2021 14:05:13 +0100 ++ ++elfutils (0.182-2) unstable; urgency=medium ++ ++ * Fix FTCBFS: perform bootstrap build with dummy libdebuginfod and without ++ debuginfod (Helmut Grohne). Closes: #973981. ++ * Fix build profile pkg.elfutils.nodebuginfod. Closes: #976875. ++ * Don't use MAKEFLAGS in the packaging. Closes: #965955. ++ * Fix unwinding support for 32bit S390, taken from the trunk. ++ Thanks to Andreas Krebbel and Frank Heimes. LP: #1908756. ++ * Call dh_dwz. ++ * Bump standards version. ++ ++ -- Matthias Klose Thu, 31 Dec 2020 12:52:31 +0100 ++ ++elfutils (0.182-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Fix typo in debian/copyright. Closes: #914414. ++ * Add pkg.elfutils.nodebuginfod build profile (Helmut Grohne). ++ Closes: #966705. ++ ++ -- Matthias Klose Sat, 07 Nov 2020 10:22:37 +0100 ++ ++elfutils (0.181-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Matthias Klose Tue, 15 Sep 2020 22:31:59 +0200 ++ ++elfutils (0.180-1) unstable; urgency=medium ++ ++ * Transfer to team maintenance, add Kurt Roeckx and myself as uploaders. ++ * Add VCS attributes to the control file. ++ * New upstream release. ++ * Build-depend on pkg-config, libarchive-dev, libmicrohttpd-dev, ++ libcurl4-gnutls-dev, libsqlite3-dev. ++ * Build with -fpermissive. ++ * Don't package debuginfod yet. ++ * New binary packages debuginfod, libdebuginfod1, libdebuginfod-dev. ++ * Use dh_autoreconf. ++ ++ -- Matthias Klose Thu, 16 Jul 2020 19:34:22 +0200 ++ ++elfutils (0.176-1.1) unstable; urgency=medium ++ ++ * Non-maintainer upload with maintainer permission ++ * Fixes FTBFS on riscv64 (Closes: #928832) ++ ++ -- Karsten Merker Tue, 28 May 2019 20:53:12 +0200 ++ ++elfutils (0.176-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Fixes CVE-2019-7150 (Closes: #920909) ++ - Fixes CVE-2019-7149 (Closes: #920910) ++ - Fixes CVE-2019-7146 (Closes: #920911) ++ - Fixes CVE-2019-7665 (Closes: #921880) ++ - Fixes CVE-2019-7664 (Closes: #921881) ++ - Fixes CVE-2019-7148 ++ - Drop 0001-tests-Call-test_cleanup-in-backtrace-subr.sh-check_u.patch, ++ applied upstream. ++ * Update upstream PGP key to new one ++ ++ -- Kurt Roeckx Sat, 16 Feb 2019 14:54:50 +0100 ++ ++elfutils (0.175-2) unstable; urgency=medium ++ ++ * Add support for the mips ABI CFI callback ++ * Properly clean up in test suite on skipped tests ++ ++ -- Kurt Roeckx Sun, 30 Dec 2018 15:02:01 +0100 ++ ++elfutils (0.175-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Build with gcc-8 (Closes: #911276) ++ - Drop fix-gcc7-ftbfs.diff ++ - Drop GNU_variable_value.patch ++ - Drop locviews.patch ++ - Update patches ++ * Fixes CVE-2018-18521 (Closes: #911413) ++ * Fixes CVE-2018-18520 (Closes: #911414) ++ * Fixes CVE-2018-18310 (Closes: #911083) ++ * Fixes CVE-2018-16403 ++ * Fixes CVE-2018-16402 ++ * Fixes CVE-2018-16062 (Closes: #907562) ++ ++ -- Kurt Roeckx Sun, 18 Nov 2018 23:01:23 +0100 ++ ++elfutils (0.170-0.5) unstable; urgency=medium ++ ++ * Non-maintainer upload acked by Kurt Roeckx. ++ * Fix FTCBFS: Add zlib1g-dev:native to Build-Depends. (Closes: #901748) ++ ++ -- Helmut Grohne Sun, 24 Jun 2018 20:54:50 +0200 ++ ++elfutils (0.170-0.4) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Backport patches for DWARF locview support (Mark Wielaard). ++ ++ -- Matthias Klose Mon, 09 Apr 2018 14:21:19 +0200 ++ ++elfutils (0.170-0.3) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Add disable_werror.patch. (Closes: #886004) ++ ++ -- Helmut Grohne Sun, 28 Jan 2018 14:52:20 +0100 ++ ++elfutils (0.170-0.2) unstable; urgency=medium ++ ++ * Non-maintainer upload, acked by maintainer. ++ * libelf-dev,libdw-dev: Add missing dependencies for packages that ++ our pkg-config files requires (zlib1g-dev, liblzma-dev). ++ (Closes: #885071) ++ ++ -- Andreas Henriksson Sat, 30 Dec 2017 18:14:17 +0100 ++ ++elfutils (0.170-0.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * New upstream release ++ * Fix fallthrough warnings exposed by GCC 7. Closes: #853387. ++ * Bump standards version. ++ * Configure with --disable-silent-rules. ++ * Update libdw1 symbols file. ++ ++ -- Matthias Klose Tue, 12 Sep 2017 00:07:19 +0200 ++ ++elfutils (0.168-1) unstable; urgency=medium ++ ++ * Fix CVE-2017-7607 (Closes: #859996) ++ * Fix CVE-2017-7608 (Closes: #859995) ++ * Fix CVE-2017-7609 (Closes: #859994) ++ * Fix CVE-2017-7610 (Closes: #859993) ++ * Fix CVE-2017-7611 (Closes: #859992) ++ * Fix CVE-2017-7612 (Closes: #859991) ++ * Fix CVE-2017-7613 (Closes: #859990) ++ ++ -- Kurt Roeckx Sat, 27 May 2017 15:05:37 +0200 ++ ++elfutils (0.168-0.2) unstable; urgency=medium ++ ++ * debian/copyright: Update to the current licensing, as introduced ++ with elfutils 0.154. ++ * Drop the m68k_backend.diff patch. ++ ++ -- Matthias Klose Thu, 29 Dec 2016 14:23:54 +0100 ++ ++elfutils (0.168-0.1) experimental; urgency=medium ++ ++ * Non-maintainer upload. ++ * New upstream release ++ - m68k_backend.diff: Don't apply. ++ - testsuite-amd64-fix-backtrace-native.patch: Remove, applied upstream. ++ - Refresh patches. ++ - Build failure on non Linux targets fixed. Closes: #816394. ++ * Update libdw1 symbols file. ++ * Improve DEB_BUILD_OPTIONS=nocheck handling (Helmut Grohne). See #832456. ++ - Don't treat DEB_BUILD_OPTIONS=casinocheck as nocheck. ++ - Don't default to nocheck for cross building. ++ - Annotate Build-Depends: gcc-multilib with profile. ++ * Update reference to new sourceware.org home. ++ ++ -- Matthias Klose Thu, 29 Dec 2016 06:09:04 +0100 ++ ++elfutils (0.166-2.2) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * testsuite-amd64-fix-backtrace-native.patch: Backport upstream ++ patch to fix FTBFS on amd64 (Closes: #841124) ++ ++ -- James Clarke Tue, 18 Oct 2016 08:13:34 +0100 ++ ++elfutils (0.166-2.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Build-Depend on gcc-multilib and libc6-dbg on sparc64 (Closes: #832584) ++ ++ -- James Clarke Fri, 07 Oct 2016 15:16:09 +0100 ++ ++elfutils (0.166-2) unstable; urgency=medium ++ ++ * Actually add ignore_strmerge.diff to the patch series. ++ ++ -- Kurt Roeckx Sat, 23 Jul 2016 18:46:20 +0200 ++ ++elfutils (0.166-1) unstable; urgency=medium ++ ++ * New upstream release ++ * Ignore run-native-test on Hurd, the maps file doesn't have ++ paths in it. Patch from Samuel Thibault ++ (Closes: #682101) ++ * Make cross compilation actually work. Patch from Helmut Grohne ++ (Closes: #818099) ++ * Add libebl.a to libdw-dev (Closes: #825747, #647918) ++ * Ignore strmerge test failured, needed on at least mips. Patch ++ from Jurica Stanojkovic ++ (Closes: #818485) ++ * Change versioned build-depends on debhelper from 8.1.3 to 9 to ++ make lintian happy. ++ * Update Standards-Version to 3.9.8, no changes required. ++ ++ -- Kurt Roeckx Sat, 23 Jul 2016 17:25:04 +0200 ++ ++elfutils (0.165-3) unstable; urgency=medium ++ ++ * Add patches from Mark Wielaard to fix non-Linux issues. ++ ++ -- Kurt Roeckx Sat, 16 Jan 2016 17:53:34 +0100 ++ ++elfutils (0.165-2) unstable; urgency=medium ++ ++ * Make the new libelf.h work with older elf.h from glibc (Closes: #810885) ++ ++ -- Kurt Roeckx Wed, 13 Jan 2016 17:50:08 +0100 ++ ++elfutils (0.165-1) unstable; urgency=medium ++ ++ * New upstream release ++ * Install libelf.pc and libdw.pc file. ++ * Update libelf1.symbols and libdw1.symbols with 0.165 version ++ ++ -- Kurt Roeckx Mon, 11 Jan 2016 21:28:32 +0100 ++ ++elfutils (0.164-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Fixes sparc64 issues (Closes: #805630) ++ - Drop patches applied upstream: 0001-Reduce-scope-of-some-includes.patch, ++ 0002-tests-Mark-an-unused-argument-as-such.patch, ++ 0003-tests-dwfl-bug-fd-leak-Guard-against-null-module-add.patch, ++ 0004-tests-skip-run-deleted.sh-when-dwfl_linux_proc_attac.patch, ++ pr18792.diff ++ - Remove redhat-portability.diff and scanf-format.patch ++ - Update backend to use to stop using the old-style function ++ definition: hppa_backend.diff, m68k_backend.diff, mips_backend.diff ++ ++ -- Kurt Roeckx Sat, 26 Dec 2015 20:55:48 +0100 ++ ++elfutils (0.163-5.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Fix finding the detached debug info when no build-id's are used. ++ Closes: #795386. ++ ++ -- Matthias Klose Fri, 14 Aug 2015 12:25:05 +0200 ++ ++elfutils (0.163-5) unstable; urgency=medium ++ ++ * Fix typo in 0003-Add-mips-n64-relocation-format-hack.patch that ++ causing crash (Closes: #794488) ++ ++ -- Kurt Roeckx Sat, 08 Aug 2015 15:12:31 +0200 ++ ++elfutils (0.163-4) unstable; urgency=medium ++ ++ * More fixes for kfreebsd and hurd ++ ++ -- Kurt Roeckx Tue, 21 Jul 2015 11:39:55 +0000 ++ ++elfutils (0.163-3) unstable; urgency=medium ++ ++ * Fix build failures on kfreebsd and hurd ++ ++ -- Kurt Roeckx Tue, 21 Jul 2015 13:01:57 +0200 ++ ++elfutils (0.163-2) unstable; urgency=medium ++ ++ * Drop non_linux.patch, it has been applied upstream ++ ++ -- Kurt Roeckx Mon, 20 Jul 2015 15:49:09 +0200 ++ ++elfutils (0.163-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Drop arm_unsupported.patch, arm64.patch, CVE-2014-9447.patch, ++ arm_syscall.patch, arm_func_value.patch, arm_unwind_ret_mask.patch, ++ unaligned.patch, aarch64-run-native-test-fix.patch: applied upstream ++ - Added ppc64el support (Closes: #754798) ++ - Fixed too much string replacement (Closes: #775117) ++ * Add flex and bison to build-depends ++ * Change hppa, m68k and mips backend to not use the removed DW_TAG_mutable_type. ++ * Ignore errors on kfreebsd in the native test suite (Closes: #649038) ++ * Add mips64el support (Closes: #774639) ++ * install known-dwarf.h in libdw-dev ++ * Update libdw1.symbols file ++ ++ -- Kurt Roeckx Mon, 20 Jul 2015 14:30:21 +0200 ++ ++elfutils (0.159-4.2) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Apply an upstream patch to fix the build failure on arm64 (closes: #776523). ++ ++ -- Michael Gilbert Fri, 13 Feb 2015 22:30:44 +0000 ++ ++elfutils (0.159-4.1) unstable; urgency=high ++ ++ * Non-maintainer upload by the Security Team. ++ * Fix CVE-2014-9447: path traversal issue in ar (closes: #775536). ++ ++ -- Michael Gilbert Mon, 26 Jan 2015 01:49:30 +0000 ++ ++elfutils (0.159-4) unstable; urgency=medium ++ ++ [ Wookey ] ++ * Fix failing run-native-test on arm64 (from Mark Wielaard) ++ (Closes: #753552) ++ ++ -- Kurt Roeckx Sun, 06 Jul 2014 15:21:48 +0200 ++ ++elfutils (0.159-3) unstable; urgency=medium ++ ++ * Make it build again on the non linux ports. ++ * Handle unaligned data when reading core files. ++ ++ -- Kurt Roeckx Tue, 24 Jun 2014 22:14:25 +0200 ++ ++elfutils (0.159-2) unstable; urgency=medium ++ ++ * Add patches from Mark Wielaard to make ++ things work on armhf. ++ * Build-Depends on libc6-dbg on arm* to make the backtrace ++ tests work instead of skip. ++ ++ -- Kurt Roeckx Sun, 15 Jun 2014 16:15:55 +0200 ++ ++elfutils (0.159-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Removed patches applied upstream: elfutils-robustify.patch, ++ core_filename.patch, CVE-2014-0172.patch, unwind_non_linux.patch ++ - Add libdwelf.h to libdw-dev ++ - New functions in libdw: udpate symbols file ++ * Also output tests/test-suite.log on failure ++ * Also Build-Depend on libc6-dbg on powerpcspe, ppc64 and ppc64el ++ ++ -- Kurt Roeckx Mon, 26 May 2014 22:03:29 +0200 ++ ++elfutils (0.158-2) unstable; urgency=medium ++ ++ * There is no support for unwinding on non-Linux ports, make it ++ build on them and make the test suite skip the tests. ++ * Build-Depend on libc6-dbg on powerpc so that we have unwind ++ information. This is a work around for things not being ++ build using -fasynchronous-unwind-tables ++ * Output tests/test-suite.log ++ * Add support for parallel building ++ ++ -- Kurt Roeckx Thu, 01 May 2014 19:04:06 +0200 ++ ++elfutils (0.158-1) unstable; urgency=medium ++ ++ * New upstream release ++ - Drop patch applied upstream ++ - Add supports for arm64 (Closes: #745368) ++ - Update libdw1.symbols. ++ * Apply core_filename.patch from Matthias Klose ++ * Fix CVE-2014-0172 (Closes: #744017) ++ * Add upstream signing key. ++ * Remove config/ar-lib file during clean ++ ++ -- Kurt Roeckx Mon, 21 Apr 2014 12:59:25 +0200 ++ ++elfutils (0.157-3) unstable; urgency=low ++ ++ * Build-Depend on gcc-multilib on [any-amd64] instead of [amd64] ++ ++ -- Kurt Roeckx Sun, 17 Nov 2013 22:54:31 +0100 ++ ++elfutils (0.157-2) unstable; urgency=low ++ ++ * Application in the readelf binary package, libdw1 itself use internal ++ APIs from libelf and so need a strict dependency on the same libelf1 ++ binary package. libasm1 also needs a strict dependency on libdw1 since ++ it uses libebl.a and so uses the MODVERSION to open the backends. The ++ dependency from libasm1 to libdw1 was missing. ++ Disabling the thread safety resulted in struct Elf's size changing ++ causing things like eu-readelf to break when an older libelf1 was ++ installed. ++ * Apply patch from upstream to fix the IA64 regression failure ++ with a powerpc binary ++ ++ -- Kurt Roeckx Sun, 03 Nov 2013 15:20:06 +0100 ++ ++elfutils (0.157-1) unstable; urgency=low ++ ++ * New upstream release ++ - Update portability and robustify patch ++ - Make arm_backend.diff apply to the new upstream version ++ - Adjust symbol files for new symbols ++ * Adjust addrcfi test results for arm to work with our arm patch. ++ ++ -- Kurt Roeckx Tue, 01 Oct 2013 18:21:23 +0200 ++ ++elfutils (0.156-1) unstable; urgency=low ++ ++ * New upstream release ++ - Update portability and robustify patch ++ - Make hppa_backend.diff, arm_backend.diff, mips_backend.diff, ++ m68k_backend.diff, testsuite-ignore-elflint apply to the new ++ upstream version ++ - Drop patches elf_end_unlock.patch, alldts.patch, strip_sh_type.patch: ++ applied upstream ++ - Works with binutils-gold (Closes: #647359) ++ - Works with gcc 4.8 (Closes: #701271) ++ * drop elf_additions.diff, it's not used. ++ * Remove config.h.in and test-driver during clean (Closes: #695927) ++ * Add build dependency on gcc-multilib [amd64] to have a working gcc -m32 ++ for the test suite. ++ * arm backend: change r12 back to signed, no idea why it was made unsigned. ++ * arm backend: rename the "special" set to "state". ++ * Our arm backend patch adds more registers, update the arm_backend.diff to ++ expectd those changes in the test suite ++ * disable thread safety, it's not tested upstream. ++ * Update libdw1.symbols ++ ++ -- Kurt Roeckx Sun, 28 Jul 2013 14:32:23 +0200 ++ ++elfutils (0.153-2) unstable; urgency=low ++ ++ * Make it actually build properly using build-arch. (Closes: #684528) ++ * Call rwlock_unlock() before rwlock_fini(). The lock was still held ++ causing problems on kfreebsd. (Closes: #662041) ++ * Don't exclude sh_type >= SHT_NUM from stripping, it's set to ++ SHT_MIPS_DWARF on mips. (Closes: #662041) ++ * readelf -w didn't show the content of debug sections on mips ++ because sh_type was set to SHT_MIPS_DWARF. ++ ++ -- Kurt Roeckx Tue, 18 Sep 2012 21:12:08 +0200 ++ ++elfutils (0.153-1) unstable; urgency=low ++ ++ [ Jonathan Nieder ] ++ * Run autotools at build time. ++ - debian/control: Build-Depends: autoconf, automake. ++ - debian/rules: ++ - config.status: ++ - depend on configure.ac, not configure. ++ - autoreconf -fis. ++ - clean: remove autotools-generated files to avoid .diff.gz ++ changes when built twice in a row. ++ - debian/patches: remove do-autoreconf.diff. ++ ++ [ Marcin Juszkiewicz ] ++ * Convert to multiarch. (Closes: #657139) ++ * Added build-{arch,indep} targets. ++ * Switched to use 'dh_prep' instead of 'dh_clean -k' ++ ++ [ Kurt Roeckx ] ++ * New upstream release ++ - Portability patch has workaround for broken bswap_32 macro. ++ This should also have been fixed in glibc code. (Closes: #595496) ++ - Fix bashism in configure script (Closes: #647350) ++ * Remove Christian Aichinger from uploaders (Closes: #661119) ++ * Make the m68k port functional, thanks to a patch from ++ Thorsten Glaser (Patch in #595496, #384794) ++ * Fix test suite to set up test environment (alldts.patch). ++ * Use dpkg-buildflags. Build-Depend on dpkg-dev (>= 1.16.1~) for ++ buildflags.mk. ++ * Call configure with --enable-maintainer-mode so all files get regenerated ++ Also add Build-Depends on gawk for this to work. ++ * Revert %m[ to %a[ change in addr2line and line2addr from the portability ++ patch. ++ * Clean up more files (Makefile.in, libdw/known-dwarf.h) ++ * Set libdir to the multiarch dir, so that the rpath gets set up correctly ++ and that we don't have to move the files in the rules file. ++ ++ -- Kurt Roeckx Fri, 24 Feb 2012 20:23:08 +0100 ++ ++elfutils (0.152-1) unstable; urgency=low ++ ++ * New upstream release ++ - Update portability and robustify patch. ++ - Update symbol file for libdw1, 2 new functions. ++ * Remove obsolete files from the debian dir. ++ * Update watch file to work with newer versions. ++ ++ -- Kurt Roeckx Wed, 08 Sep 2010 19:54:20 +0200 ++ ++elfutils (0.148-1) unstable; urgency=low ++ ++ * New upstream release ++ - Drop debug_filename.patch, applied upstream. ++ - New symbols in libdw1, update symbols file. ++ ++ -- Kurt Roeckx Sat, 03 Jul 2010 15:01:59 +0200 ++ ++elfutils (0.147-2) unstable; urgency=low ++ ++ * Open the proper file with debug info in case they have the same ++ name. (Closes: #555549) ++ ++ -- Kurt Roeckx Thu, 17 Jun 2010 18:38:27 +0200 ++ ++elfutils (0.147-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Kurt Roeckx Mon, 24 May 2010 10:49:05 +0200 ++ ++elfutils (0.146-1) unstable; urgency=low ++ ++ * New upstream release ++ - adds better support for the sh arch ++ - Add build-depedency on liblzma-dev ++ - Add build-depedency on gettext ++ - Add tanslations to libelf1. All packges making use of those ++ files depend on it. ++ - New symbols dwfl_core_file_report in libdw1, update symbol file. ++ * Call configure with --enable-thread-safety ++ ++ -- Kurt Roeckx Sat, 24 Apr 2010 11:55:24 +0200 ++ ++elfutils (0.145-1) unstable; urgency=low ++ ++ * New upstream release ++ * Make elfutils depend libdw1 (= ${binary:Version}). The static libebl.a ++ that it used by the applications in changes MODVERSION on rebuild. It's ++ the only thing making use of libebl.a ++ ++ -- Kurt Roeckx Wed, 24 Feb 2010 19:36:07 +0100 ++ ++elfutils (0.144-1) unstable; urgency=low ++ ++ * New upstream version ++ - Fixes segfault in systemtap (Closes: #556133) ++ - Remove elflint-comment.diff and nobits.diff, applied upstream. ++ - dwarf_aggregate_size got added in libdw1, ++ elf_getphdrnum got added to libelf: update symbol file. ++ * Switch to dpkg-source 3.0 (quilt) format ++ * hppa: Use dwarf_aggregate_size(). ++ * Add ${misc:Depends} to all packages ++ * Change Standards-Version to 3.8.4, no changes required. ++ ++ -- Kurt Roeckx Mon, 15 Feb 2010 23:27:18 +0100 ++ ++elfutils (0.143-2) unstable; urgency=low ++ ++ * Prevent segfault from debug only files. (Closes: #556133) ++ ++ -- Kurt Roeckx Mon, 16 Nov 2009 18:22:43 +0100 ++ ++elfutils (0.143-1) unstable; urgency=low ++ ++ * New upstream release. ++ - Upstream added new symbols in libdw1, adjust symbol file. ++ * Remove the fix-bswap-warnings.diff and pointer_cast.diff ++ patch, they weren't used anyway. ++ * Remove posix_fadvise.diff and namelen.diff, applied upstream. ++ * Add elflint-comment.diff, from upstream git. Fixes a regression ++ suite error with newer binutils. ++ ++ -- Kurt Roeckx Mon, 21 Sep 2009 21:06:21 +0000 ++ ++elfutils (0.142-1) unstable; urgency=low ++ ++ * New upstream version ++ * Provide a static version of libdw. Do not use it unless you ++ know what you're doing. (Closes: #538375) ++ * Replace elf_getshstrndx by elf_getshdrstrndx in the mips backend. ++ elf_getshstrndx has been deprecated. ++ * Upstream added new symbols, adjust symbol files. ++ ++ -- Kurt Roeckx Fri, 14 Aug 2009 13:56:30 +0200 ++ ++elfutils (0.141-2) unstable; urgency=low ++ ++ * Make libdw-dev Depend on libdw1 (Closes: #526824) ++ ++ -- Kurt Roeckx Sun, 03 May 2009 22:07:59 +0200 ++ ++elfutils (0.141-1) unstable; urgency=low ++ ++ * New upstream release ++ - Update redhat-robustify.diff and redhat-portability.diff ++ - Remove redhat-strip-copy-symtab.diff, does not seem to be used anymore. ++ Also remove things in the rules file that deal with it, and ++ drop sharutils from build-depends. ++ - Remove elflint_initialization.diff, unaligned.diff, pointer_cast.diff, ++ gnu_inline.diff, readelf_subelf.diff, gcc-4.3_support: applied or ++ fixed some other way upstream ++ * Update watch file to new location. ++ * Make libasm-dev conflict with libasm0-dev (Closes: #509042) ++ * Create a shared version of libdw, and move libebl's file ++ in the libdw1 package. Drop the static versions of libdw and libebl. ++ There is no libebl-dev anymore. (Closes: #457543) ++ * Add elfutils/version.h to libelf-dev ++ * Run test suite with LC_CTYPE=C, to have the same sort ordering. ++ * Add Build-Dependency on zlib1g-dev, libbz2-dev and m4. ++ * Start using dpkg-gensymbols: ++ - libasm1: Upstream added disasm_begin, disasm_cb, disasm_end ++ and disasm_str to ELFUTILS_1.0 in 0.132, the others are there ++ since 0.120. ++ - libelf1: ELFUTILS_1.2 was added in 0.122, ELFUTILS_1.3 in ++ 0.130 and ELFUTILS_1.4 in 0.132. gelf_rawchunk ++ and gelf_freechunk got removed in 0.131. ++ - libdw1: Versions are when get got introduced. dwarf_getelf ++ was removed from ELFUTILS_0.122 and changed to ELFUTILS_0.126 ++ in 0.126 ++ * libasm1 and libelf1 added new functions, bump shlibs ++ * Update Standards-Version to 3.8.1 ++ - Change ${Source-Version} to ${binary:Version} ++ - Add support for DEB_BUILD_OPTIONS nocheck ++ - Add upstream Homepage ++ * Don't use -$(MAKE) distclean ++ * Remove debian/dirs file. ++ ++ -- Kurt Roeckx Sat, 02 May 2009 16:30:39 +0200 ++ ++elfutils (0.131-4) unstable; urgency=low ++ ++ * Move static functions the only file that uses it. Avoids warning ++ using gcc-4.3. Thanks to Maximiliano Curia for the patch. ++ (Closes: #467103) ++ ++ -- Kurt Roeckx Sat, 05 Apr 2008 13:40:13 +0000 ++ ++elfutils (0.131-3) unstable; urgency=low ++ ++ * Add m68k backend. ++ * Fix copyright file to point to /usr/share/common-licenses/GPL-2 ++ ++ -- Kurt Roeckx Wed, 26 Dec 2007 19:53:09 +0100 ++ ++elfutils (0.131-2) unstable; urgency=low ++ ++ * Bump shlibs for libelf1 since it added new functions. ++ ++ -- Kurt Roeckx Mon, 17 Dec 2007 18:33:45 +0100 ++ ++elfutils (0.131-1) unstable; urgency=low ++ ++ * New usptream version. (Closes: #455878) ++ - ebl_core_note() changed function arguments. ++ - libelf: Add functions: gelf_getauxv(), gelf_update_auxv(), ++ gelf_getnote(), elf_getdata_rawchunk(). ++ removed gelf_rawchunk(), gelf_freechunk() ++ - Changed some types from off_t to off64_t. The library ++ was always build with LFS, so it's just a correction of the types. ++ * merge patches ++ * arm, hppa and mips backend: Use dwarf_attr_integrate() instead of ++ dwarf_attr(), and dwarf_hasattr_integrate() instead of dwarf_hasattr(). ++ * Add patch from Aurelien Jarno to support ++ GNU/kFreeBSD (Closes: #452428) ++ ++ -- Kurt Roeckx Sat, 15 Dec 2007 20:31:14 +0100 ++ ++elfutils (0.128-1) unstable; urgency=low ++ ++ * New upstream release: ++ Remove patch alpha_backend_regs.diff, upstream implemented ++ it themself (with the aliases for the register names). ++ * Make libasm-dev conflict with libelfsh0-dev again, the 0.123-3 change ++ got lost. (Closes: #404054) ++ * First cast main to an intptr_t before casting it to a 64 bit int. ++ Directly casting from a pointer to 64 bit int gives a warning ++ on 32 bit systems (with gcc-4.2). (Closes: #431455) ++ * Also check for /proc/$$. ++ ++ -- Kurt Roeckx Sun, 08 Jul 2007 19:28:46 +0000 ++ ++elfutils (0.127-4) unstable; urgency=low ++ ++ * Use the gnu_inline attribute for inline functions so it build with ++ gcc-4.2. (Closes: #424548) ++ * Add check for maps and auxv file in the proc dir to try and debug ++ the sparc build failure. ++ ++ -- Kurt Roeckx Fri, 18 May 2007 13:41:35 +0200 ++ ++elfutils (0.127-3) unstable; urgency=low ++ ++ * Update unaligned patch to also work when we're using -O2. ++ ++ -- Kurt Roeckx Sun, 13 May 2007 22:48:57 +0200 ++ ++elfutils (0.127-2) unstable; urgency=low ++ ++ * Remove duplicate initialization of DT_PLTRELSZ in elflint. ++ (Closes: #393812) ++ * Only using posix_fadvise() when we have POSIX_FADV_SEQUENTIAL since ++ some arches like kFreeBSD don't support it. (Closes: #404091) ++ * Fix unaligned accesses on IA64. Added patch unaligned.diff. ++ ++ -- Kurt Roeckx Sun, 13 May 2007 18:12:01 +0200 ++ ++elfutils (0.127-1) unstable; urgency=low ++ ++ * New upstream release: ++ Remove patches applied upstream: fix-testsuite.diff, maintainer_mode.diff, ++ fix-distclean-to-really-distclean.diff, sparc_retval-backend.diff, ++ elflint-alpha.diff, fix-readelf.diff, fix-alignment-sparc.diff, ++ native-pid.diff, unalligned-endian.diff ++ * register_name() got replaced by register_info(). Update backends ++ to add dwarf type and number of bits info for those backends: ++ alpha, arm, hppa, mips ++ * Added redhat-strip-copy-symtab.diff patch. Inlucde ++ testfile16.symtab.bz2 and testfile16.symtab.debug.bz2 test files. ++ Add sharutils to build-depends for uudecode. ++ * Updated redhat-portability.diff: Now includes fix-mipsel-ftbfs.diff ++ so remove it. ++ * Add various types to elf.h ++ * Update watch file to use a different url. ++ ++ -- Kurt Roeckx Sat, 5 May 2007 15:59:46 +0200 ++ ++elfutils (0.123-2) unstable; urgency=low ++ ++ [ Kurt Roeckx ] ++ * Add backend support for alpha: adding the registers. ++ * Add backend support for arm: adding regs and retval. ++ Thanks to Eugeniy Meshcheryakov ++ * Add backend support for hppa, thanks to ++ Eugeniy Meshcheryakov ++ * Add some missing ELFOSABI_* and EM_* to elf.h ++ ++ [ Christian Aichinger ] ++ * Fix sparc backend retval ++ * Add mips backend. ++ * Rewrite the static backend so making changes to the backends ++ is easier. ++ ++ -- Kurt Roeckx Sun, 27 Aug 2006 15:48:23 +0000 ++ ++elfutils (0.123-1) unstable; urgency=low ++ ++ * New upstream release ++ - Add IA64 backend support ++ - Remove redhat-fix-cast.diff, applied upstream ++ - Make patches apply to new upstream version. ++ * Include configure and all Makefile.in's in the configure patch. ++ ++ -- Kurt Roeckx Tue, 15 Aug 2006 19:42:44 +0000 ++ ++elfutils (0.122-4) unstable; urgency=low ++ ++ [ Kurt Roeckx ] ++ * The backends init functions should be functions, not pointers ++ to functions. Also thanks to Eugeniy Meshcheryakov ++ for pointing out the same. This should fix the segmentation faults ++ seen on ia64. ++ * When doing x && y &, bash retuns the pid for x, while the script ++ expected the one for y. Other shells I've tried return that of y. ++ As a result the run-native-test.sh keeps a "native" process running. ++ Removed the &&, so it always gets the correct pid. (Closes: #382758) ++ * Fix endiannes problems for opening files of your own endiannes ++ when not avoiding unaligned access. This didn't affect ++ i386 and amd64. ++ ++ -- Kurt Roeckx Sun, 13 Aug 2006 15:08:32 +0000 ++ ++elfutils (0.122-3) unstable; urgency=low ++ ++ [ Kurt Roeckx ] ++ * Add build dependency on bzip2, so that all the regression ++ tests can run. ++ * elflint: Add EM_ALPHA to valid_e_machine. ++ ++ [ Christian Aichinger] ++ * Add retval to the sparc backend. ++ * Ignore testsuite failures that elflint reports. ++ * readelf should check destshdr instead of shdr. ++ * Fix alignment problems in libdw_alloc seen on sparc. ++ ++ -- Kurt Roeckx Wed, 9 Aug 2006 19:21:05 +0000 ++ ++elfutils (0.122-2) unstable; urgency=low ++ ++ * Make libelf-dev Conflict with libelfg0-dev since they both ship ++ the same library and headers. ++ ++ -- Kurt Roeckx Fri, 4 Aug 2006 19:38:32 +0000 ++ ++elfutils (0.122-1) unstable; urgency=low ++ ++ * Initial release (Closes: #368248) ++ ++ -- Kurt Roeckx Sun, 21 May 2006 15:03:01 +0000 ++ diff --cc debian/control index 0000000,0000000..322636f new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,184 @@@ ++Source: elfutils ++Priority: optional ++Maintainer: Debian Elfutils Maintainers ++Uploaders: Kurt Roeckx , ++ Matthias Klose , ++ Sergio Durigan Junior , ++Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13), ++ autoconf, automake, lsb-release, ++ bzip2, zlib1g-dev, zlib1g-dev:native, libbz2-dev, liblzma-dev, ++ libzstd-dev, zstd , ++ m4, gettext, po-debconf, ++ gawk, dpkg-dev (>= 1.16.1~), ++ libc6-dbg [powerpc ppc64 ppc64el armel armhf arm64 sparc64 riscv64], ++ flex, bison, ++ pkgconf, ++ libarchive-dev , ++ libjson-c-dev , ++ libmicrohttpd-dev , ++ libcurl4-gnutls-dev , ++ libsqlite3-dev , ++Build-Conflicts: autoconf2.13 ++Standards-Version: 4.7.3 ++Section: libs ++Homepage: https://sourceware.org/elfutils/ ++Vcs-Browser: https://salsa.debian.org/toolchain-team/elfutils ++Vcs-Git: https://salsa.debian.org/toolchain-team/elfutils.git ++ ++Package: elfutils ++Section: utils ++Architecture: any ++Multi-Arch: foreign ++Depends: ${shlibs:Depends}, ${misc:Depends}, ++ libelf1t64 (= ${binary:Version}), libdw1t64 (= ${binary:Version}) ++Description: collection of utilities to handle ELF objects ++ Elfutils is a collection of utilities, including eu-ld (a linker), ++ eu-nm (for listing symbols from object files), eu-size (for listing the ++ section sizes of an object or archive file), eu-strip (for discarding ++ symbols), eu-readelf (to see the raw ELF file structures), and eu-elflint ++ (to check for well-formed ELF files). ++ ++Package: libelf1t64 ++Provides: ${t64:Provides} ++Replaces: libelf1 ++Breaks: libelf1 (<< ${source:Version}) ++Architecture: any ++Multi-Arch: same ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Pre-Depends: ${misc:Pre-Depends} ++Description: library to read and write ELF files ++ The libelf1t64 package provides a shared library which allows reading and ++ writing ELF files on a high level. Third party programs depend on ++ this package to read internals of ELF files. The programs of the ++ elfutils package use it also to generate new ELF files. ++ . ++ This library is part of elfutils. ++ ++Package: libelf-dev ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libelf1t64 (= ${binary:Version}), ${misc:Depends}, ++ zlib1g-dev, libzstd-dev ++Conflicts: libelfg0-dev ++Description: libelf1t64 development libraries and header files ++ libelf1t64 provides a shared library which allows reading and writing of ELF ++ files on a high level. ++ . ++ This package contains development libraries and header files for libelf1. ++ ++Package: libdw-dev ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libelf-dev, libdw1t64 (= ${binary:Version}), ${misc:Depends}, ++ zlib1g-dev, liblzma-dev ++Description: libdw1t64 development libraries and header files ++ libdw1t64 provides a library that provides access to DWARF debug information ++ stored inside ELF files. ++ . ++ This package contains development libraries and header files for libdw1. ++ . ++ It also contains a static version of libdw. Only link to the static version ++ for special cases and when you don't need anything from the ebl backends. ++ ++Package: libdw1t64 ++Provides: ${t64:Provides} ++Replaces: libdw1 ++Breaks: libdw1 (<< ${source:Version}) ++Architecture: any ++Multi-Arch: same ++Depends: ${shlibs:Depends}, libelf1t64 (= ${binary:Version}), ${misc:Depends} ++Pre-Depends: ${misc:Pre-Depends} ++Description: library that provides access to the DWARF debug information ++ libdw1t64 provides a library that provides access to DWARF debug information ++ stored inside ELF files. ++ . ++ This library is part of elfutils. ++ ++Package: libasm1t64 ++Provides: ${t64:Provides} ++Replaces: libasm1 ++Breaks: libasm1 (<< ${source:Version}) ++Architecture: any ++Multi-Arch: same ++Depends: ${shlibs:Depends}, ${misc:Depends}, ++ libelf1t64 (= ${binary:Version}), libdw1t64 (= ${binary:Version}) ++Pre-Depends: ${misc:Pre-Depends} ++Description: library with a programmable assembler interface ++ The libasm1t64 package provides a library with a programmable assembler ++ interface. It allows you to create ELF files on a low level. ++ . ++ This library is part of elfutils. ++ ++Package: libasm-dev ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libasm1t64 (= ${binary:Version}), libelf-dev, ${misc:Depends} ++Conflicts: libelfsh0-dev, libasm0-dev ++Description: libasm development libraries and header files ++ libasm1t64 allows you to create ELF files on a low level. ++ . ++ This package contains development libraries and header files for libasm1. ++ ++Package: libdebuginfod1t64 ++Provides: ${t64:Provides} ++Replaces: libdebuginfod1 ++Breaks: libdebuginfod1 (<< ${source:Version}) ++Build-Profiles: ++Architecture: any ++Multi-Arch: same ++Depends: ${shlibs:Depends}, ${misc:Depends}, ++ libelf1t64 (= ${binary:Version}), libdw1t64 (= ${binary:Version}), ++ libdebuginfod-common (>= ${source:Version}) ++Pre-Depends: ${misc:Pre-Depends} ++Description: library to interact with debuginfod (development files) ++ The libdebuginfo1 package provides a library with an interface to interact ++ with debuginfod. ++ . ++ This library is part of elfutils. ++ ++Package: libdebuginfod-dev ++Build-Profiles: ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libdebuginfod1t64 (= ${binary:Version}), ${misc:Depends}, libelf-dev, ++Description: libdebuginfod development libraries and header files ++ libasm1t64 allows you to interact with debuginfod. ++ . ++ This package contains development libraries and header files for ++ libdebuginfod1. ++ ++Package: debuginfod ++Build-Profiles: ++Section: devel ++Architecture: any ++Depends: libdebuginfod1t64 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} ++Recommends: libarchive-tools ++Description: debuginfo-related http file-server daemon ++ Server, client tool and library to index and fetch ELF/DWARF files ++ addressed by build-id through HTTP. ++ ++Package: libdebuginfod-common ++Build-Profiles: ++Section: devel ++Architecture: all ++Multi-Arch: foreign ++Depends: ${misc:Depends}, ucf ++Pre-Depends: ${misc:Pre-Depends}, debconf ++Description: configuration to enable the Debian debug info server ++ This package asks if it should enable use of the Debian debug info ++ server with debugging tools that use libdebuginfo such as GDB. ++ . ++ When this is allowed by the sysadmin, a snippet will be added to the ++ shell configuration. You will need to restart your shell after ++ installing this package before the snippet will work. ++ . ++ The Debian debug info server will be contacted every time debugging ++ tools attempt to look up debug info for binaries or libraries but the ++ server does not log requests for debug info. ++ . ++ The Debian debug info server uses https to securely transfer debugging ++ files but does not offer OpenPGP signing of debug info. diff --cc debian/copyright index 0000000,0000000..699af75 new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,183 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Comment: This package was debianized by Kurt Roeckx . ++Upstream-Name: elfutils ++Upstream-Contact: elfutils-devel@sourceware.org ++Source: https://sourceware.org/elfutils/ftp/ ++ ++Files: * ++Copyright: (C) 1996-2019 Red Hat, Inc. ++ (C) 2022 Mark J. Wielaard ++ (C) 2015, 2016 Oracle, Inc. ++ (C) 2017 The Qt Company ++ (C) 2018, 2021 Facebook, Inc. ++ (C) 2021 Runsafe Security, Inc. ++ (C) H.J. Lu , 2015. ++ (C) 2020 Tom Tromey ++Comment: Written by: ++ Ulrich Drepper ++ Jeff Johnson ++ Alexander Larsson ++ Jakub Jelinek ++ Roland McGrath . ++ See more in the AUTHORS file. ++License: GPL-3+ ++ ++Files: backends/* ++ config/* ++ debuginfod/* ++ lib* ++ version.h ++ debian/patches/mips_cfi.patch ++Copyright: (C) 1996-2019 Red Hat, Inc. ++ (C) 2021, 2022 Mark J. Wielaard ++ (C) 2015 Oracle, Inc. ++ (C) 2016, 2017 The Qt Company Ltd. ++ (C) 2021 Google, Inc. ++ (C) 2012 Tilera Corporation ++ (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. ++ (C) H.J. Lu , 2015. ++ (c) 2021 Dmitry V. Levin ++ (C) 2018 Sifive, Inc. ++ (C) 2018 Kurt Roeckx, Inc. ++Comment: Most of the libraries (lib, libelf, libebl, libdw, libdwfl) have ++ the following license: ++License: LGPL-3+ or GPL-2+ ++ This file is free software; you can redistribute it and/or modify ++ it under the terms of either ++ . ++ * the GNU Lesser General Public License as published by the Free ++ Software Foundation; either version 3 of the License, or (at ++ your option) any later version ++ . ++ or ++ . ++ * the GNU General Public License as published by the Free ++ Software Foundation; either version 2 of the License, or (at ++ your option) any later version ++ . ++ or both in parallel, as here. ++ . ++ elfutils is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ . ++ You should have received copies of the GNU General Public License and ++ the GNU Lesser General Public License along with this program. If ++ not, see . ++Comment: ++ On Debian GNU/Linux systems, the complete text of the GNU General ++ Public License version 2 can be found in ++ `/usr/share/common-licenses/GPL-2' and the complete text of the GNU ++ Lesser General Public License version 3 can be found in ++ `/usr/share/common-licenses/LGPL-3'. ++ ++Files: doc/readelf.1 ++Copyright: (c) 1991-2018 Free Software Foundation, Inc. ++ (c) 2019 Red Hat Inc. ++License: GFDL-NIV-1.3 ++ Permission is granted to copy, distribute and/or modify this document ++ under the terms of the GNU Free Documentation License, Version 1.3 ++ or any later version published by the Free Software Foundation; ++ with no Invariant Sections, no Front-Cover Texts, and no ++ Back-Cover Texts. A copy of the license is included in the ++ section entitled "GNU Free Documentation License". ++Comment: ++ On Debian GNU/Linux systems, the complete text of the GNU ++ Free Documentation License version 1.3 can be found in ++ `/usr/share/common-licenses/GFDL-1.3' ++ ++Files: libelf/dl-hash.h ++ libelf/elf.h ++Copyright: (C) 1995-2022 Free Software Foundation, Inc. ++Comment: This file is part of the GNU C Library. ++License: LGPL-2.1+ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ . ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ . ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . ++Comment: ++ On Debian GNU/Linux systems, the complete text of the GNU ++ Lesser General Public License version 2.1 can be found in ++ `/usr/share/common-licenses/LGPL-2.1'. ++ ++Files: libcpu/i386_parse.* ++Copyright: (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, ++ Inc. ++License: GPL-3+ with Bison exception ++ This program is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ . ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . */ ++ . ++ As a special exception, you may create a larger work that contains ++ part or all of the Bison parser skeleton and distribute that work ++ under terms of your choice, so long as that work isn't itself a ++ parser generator using the skeleton or a modified version thereof ++ as a parser skeleton. Alternatively, if you modify or redistribute ++ the parser skeleton itself, you may (at your option) remove this ++ special exception, which will cause the skeleton and the resulting ++ Bison output files to be licensed under the GNU General Public ++ License without this special exception. ++ . ++ This special exception was added by the Free Software Foundation in ++ version 2.2 of Bison. ++ ++Files: debian/po/de.po ++Copyright: (C) 2021, Helge Kreutzmann ++License: GPL-3+ ++ ++Files: debian/po/es.po ++Copyright: (C) 2022, Camaleón ++License: GPL-3+ ++ ++Files: debian/po/fr.po ++Copyright: (C) 2021, Jean-Pierre Giraud ++License: GPL-3+ ++ ++Files: debian/po/nl.po ++Copyright: (C) 2021, Frans Spiesschaert ++License: GPL-3+ ++ ++Files: debian/po/pt_BR.po ++Copyright: (C) 2021, Sergio Durigan Junior ++License: GPL-3+ ++ ++Files: debian/po/pt.po ++Copyright: (C) 2021, Américo Monteiro ++License: GPL-3+ ++ ++License: GPL-3+ ++ This file is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3 of the License, or ++ (at your option) any later version. ++ . ++ elfutils is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . ++Comment: GPL-3+ ++ On Debian GNU/Linux systems, the complete text of the GNU ++ General Public License version 3 can be found in ++ `/usr/share/common-licenses/GPL-3' diff --cc debian/debuginfod.install index 0000000,0000000..344d740 new file mode 100644 --- /dev/null +++ b/debian/debuginfod.install @@@ -1,0 -1,0 +1,4 @@@ ++usr/bin/debuginfod ++usr/bin/debuginfod-find ++usr/share/man/man1/debuginfod-find.1 ++usr/share/man/man8/debuginfod.8 diff --cc debian/docs index 0000000,0000000..5502ed8 new file mode 100644 --- /dev/null +++ b/debian/docs @@@ -1,0 -1,0 +1,3 @@@ ++NEWS ++README ++TODO diff --cc debian/elfutils.install index 0000000,0000000..dce3e5d new file mode 100644 --- /dev/null +++ b/debian/elfutils.install @@@ -1,0 -1,0 +1,4 @@@ ++usr/bin ++usr/share/man/man1/eu-elfclassify.1 ++usr/share/man/man1/eu-readelf.1 ++usr/share/man/man1/eu-srcfiles.1 diff --cc debian/libasm-dev.install index 0000000,0000000..7c0a960 new file mode 100644 --- /dev/null +++ b/debian/libasm-dev.install @@@ -1,0 -1,0 +1,3 @@@ ++usr/include/elfutils/libasm.h ++usr/lib/*/libasm.a ++usr/lib/*/libasm.so diff --cc debian/libasm1t64.install index 0000000,0000000..aa35d27 new file mode 100644 --- /dev/null +++ b/debian/libasm1t64.install @@@ -1,0 -1,0 +1,2 @@@ ++usr/lib/*/libasm.so.1 ++usr/lib/*/libasm-*.so diff --cc debian/libasm1t64.lintian-overrides index 0000000,0000000..37b9aa9 new file mode 100644 --- /dev/null +++ b/debian/libasm1t64.lintian-overrides @@@ -1,0 -1,0 +1,1 @@@ ++libasm1t64: package-name-doesnt-match-sonames libasm1 diff --cc debian/libasm1t64.symbols index 0000000,0000000..930fad5 new file mode 100644 --- /dev/null +++ b/debian/libasm1t64.symbols @@@ -1,0 -1,0 +1,6 @@@ ++libasm.so.1 libasm1t64 #MINVER# ++ (symver)ELFUTILS_1.0 0.120 ++ disasm_begin@ELFUTILS_1.0 0.132 ++ disasm_cb@ELFUTILS_1.0 0.132 ++ disasm_end@ELFUTILS_1.0 0.132 ++ disasm_str@ELFUTILS_1.0 0.132 diff --cc debian/libdebuginfod-common.config index 0000000,0000000..9f9b13a new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-common.config @@@ -1,0 -1,0 +1,20 @@@ ++#!/bin/sh ++ ++set -e ++ ++. /usr/share/debconf/confmodule ++ ++CONFTEMPLATEPATH="/usr/share/libdebuginfod-common" ++ ++db_version 2.0 ++db_capb ++ ++# Ask whether the user is OK with using debuginfod. We just bother ++# with the question if there is actually a debuginfod profile.d script ++# available. ++if [ -f "${CONFTEMPLATEPATH}"/debuginfod.sh ]; then ++ if grep -qFx "ID=debian" /etc/os-release; then ++ db_input medium libdebuginfod/usedebiandebuginfod || true ++ fi ++ db_go || true ++fi diff --cc debian/libdebuginfod-common.install index 0000000,0000000..2956675 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-common.install @@@ -1,0 -1,0 +1,3 @@@ ++etc/profile.d/debuginfod.* usr/share/libdebuginfod-common/ ++usr/share/man/man7/debuginfod-client-config.7 ++etc/debuginfod/elfutils.urls etc/debuginfod/ diff --cc debian/libdebuginfod-common.postinst index 0000000,0000000..960b8c8 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-common.postinst @@@ -1,0 -1,0 +1,83 @@@ ++#!/bin/sh ++ ++set -e ++ ++. /usr/share/debconf/confmodule ++ ++readonly CONFTEMPLATEPATH="/usr/share/libdebuginfod-common" ++ ++configure_debuginfod_debian() ++{ ++ local RET="false" ++ ++ db_get libdebuginfod/usedebiandebuginfod || RET="false" ++ ++ for ext in sh csh; do ++ [ -f "${CONFTEMPLATEPATH}/debuginfod.${ext}" ] || continue ++ ++ if [ "$RET" = "true" ]; then ++ UCF_FORCE_CONFMISS=1 ucf --three-way --debconf-ok \ ++ "${CONFTEMPLATEPATH}/debuginfod.${ext}" \ ++ "/etc/profile.d/debuginfod.${ext}" ++ ucfr libdebuginfod-common "/etc/profile.d/debuginfod.${ext}" ++ chmod 0644 "/etc/profile.d/debuginfod.${ext}" ++ else ++ rm -f "/etc/profile.d/debuginfod.${ext}" ++ fi ++ done ++} ++ ++configure_debuginfod_ubuntu() ++{ ++ local OLDVER="$1" ++ ++ # Handle previous versions where the debuginfod configuration was ++ # optional. ++ if dpkg --compare-versions "${OLDVER}" le-nl "0.187-3"; then ++ for ext in sh csh; do ++ ucf --purge "/etc/profile.d/debuginfod.${ext}" ++ ucfr --purge libdebuginfod-common "/etc/profile.d/debuginfod.${ext}" ++ ++ rm -f "/etc/profile.d/debuginfod.${ext}" ++ done ++ fi ++ ++ for ext in sh csh; do ++ [ -e "/etc/profile.d/debuginfod.${ext}" ] && continue ++ ++ ln -s "${CONFTEMPLATEPATH}/debuginfod.${ext}" \ ++ "/etc/profile.d/debuginfod.${ext}" ++ done ++} ++ ++configure_debuginfod() ++{ ++ local OLDVER="$1" ++ ++ if grep -qFx "ID=debian" /etc/os-release; then ++ configure_debuginfod_debian "${OLDVER}" ++ elif grep -qFx "ID=ubuntu" /etc/os-release; then ++ configure_debuginfod_ubuntu "${OLDVER}" ++ fi ++} ++ ++case "$1" in ++ configure) ++ configure_debuginfod "$2" ++ ;; ++ ++ abort-upgrade|abort-remove|abort-deconfigure) ++ ;; ++ ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 1 ++ ;; ++esac ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 diff --cc debian/libdebuginfod-common.postrm index 0000000,0000000..26d1e33 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-common.postrm @@@ -1,0 -1,0 +1,59 @@@ ++#!/bin/sh ++ ++set -e ++ ++purge_debuginfod_debian() ++{ ++ for ext in sh csh; do ++ [ -f /etc/profile.d/debuginfod."${ext}" ] || continue ++ ++ if command -v ucf > /dev/null; then ++ ucf --purge /etc/profile.d/debuginfod."${ext}" ++ fi ++ if command -v ucfr > /dev/null; then ++ ucfr --purge libdebuginfod-common /etc/profile.d/debuginfod."${ext}" ++ fi ++ rm -f /etc/profile.d/debuginfod."${ext}" ++ done ++} ++ ++purge_debuginfod_ubuntu() ++{ ++ CONFTEMPLATEPATH="/usr/share/libdebuginfod-common" ++ ++ for ext in sh csh; do ++ [ -L "/etc/profile.d/debuginfod.${ext}" ] || continue ++ ++ # Only remove the file if it's a symlink to the file we ++ # installed under ${CONFTEMPLATEPATH}. ++ if [ "$(readlink -m /etc/profile.d/debuginfod.${ext})" \ ++ = "${CONFTEMPLATEPATH}/debuginfod.${ext}" ]; then ++ rm -f "/etc/profile.d/debuginfod.${ext}" ++ fi ++ done ++} ++ ++case "$1" in ++ purge) ++ if grep -qFx "ID=debian" /etc/os-release; then ++ purge_debuginfod_debian ++ elif grep -qFx "ID=ubuntu" /etc/os-release; then ++ purge_debuginfod_ubuntu ++ fi ++ ;; ++ ++ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ++ ;; ++ ++ *) ++ echo "postrm called with unknown argument \`$1'" >&2 ++ exit 1 ++ ;; ++esac ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 diff --cc debian/libdebuginfod-common.templates index 0000000,0000000..4f80019 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-common.templates @@@ -1,0 -1,0 +1,12 @@@ ++Template: libdebuginfod/usedebiandebuginfod ++Type: boolean ++Default: true ++_Description: Connect to Debian's debuginfod server to download debug symbols? ++ While debugging programs (with GDB, for example) or using ++ debuginfo-consumer applications, it is possible to connect to ++ Debian's debuginfod server and download the necessary debug ++ information for the program you are debugging on-the-fly, without the ++ need to configure the debian-debug apt repository nor installing ++ any dbgsym packages. This service is maintained by Debian, and the ++ only information you will have to send to it is the Build-ID hash of ++ the program(s)/library(ies) being debugged. diff --cc debian/libdebuginfod-dev.install index 0000000,0000000..f809099 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod-dev.install @@@ -1,0 -1,0 +1,4 @@@ ++usr/lib/*/libdebuginfod.so ++usr/lib/*/pkgconfig/libdebuginfod.pc ++usr/include/elfutils/debuginfod.h ++usr/share/man/man3/debuginfod_*.3 diff --cc debian/libdebuginfod1t64.install index 0000000,0000000..62b1838 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod1t64.install @@@ -1,0 -1,0 +1,2 @@@ ++usr/lib/*/libdebuginfod.so.* ++usr/lib/*/libdebuginfod-*.so diff --cc debian/libdebuginfod1t64.lintian-overrides index 0000000,0000000..e0c52fa new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod1t64.lintian-overrides @@@ -1,0 -1,0 +1,1 @@@ ++libdebuginfod1t64: package-name-doesnt-match-sonames libdebuginfod1 diff --cc debian/libdebuginfod1t64.symbols index 0000000,0000000..0c12f71 new file mode 100644 --- /dev/null +++ b/debian/libdebuginfod1t64.symbols @@@ -1,0 -1,0 +1,11 @@@ ++libdebuginfod.so.1 libdebuginfod1t64 #MINVER# ++ (symver)ELFUTILS_0.178 0.180 ++ (symver)ELFUTILS_0.179 0.180 ++ (symver)ELFUTILS_0 0.180 ++ (symver)ELFUTILS_0.183 0.182+20210203 ++ (symver)ELFUTILS_0.188 0.188 ++ (symver)ELFUTILS_0.192 0.192 ++ init_handle@Base 0.194 ++ init_server_urls@Base 0.194 ++ perform_queries@Base 0.194 ++ diff --cc debian/libdw-dev.install index 0000000,0000000..bd8b2be new file mode 100644 --- /dev/null +++ b/debian/libdw-dev.install @@@ -1,0 -1,0 +1,9 @@@ ++usr/include/dwarf.h ++usr/include/elfutils/libdw.h ++usr/include/elfutils/libdwfl.h ++usr/include/elfutils/libdwelf.h ++usr/include/elfutils/libdwfl_stacktrace.h ++usr/include/elfutils/known-dwarf.h ++usr/lib/*/libdw.so ++usr/lib/*/libdw.a ++usr/lib/*/pkgconfig/libdw.pc diff --cc debian/libdw1t64.install index 0000000,0000000..344fc0f new file mode 100644 --- /dev/null +++ b/debian/libdw1t64.install @@@ -1,0 -1,0 +1,2 @@@ ++usr/lib/*/libdw.so.1 ++usr/lib/*/libdw-0.*.so diff --cc debian/libdw1t64.lintian-overrides index 0000000,0000000..4065c6f new file mode 100644 --- /dev/null +++ b/debian/libdw1t64.lintian-overrides @@@ -1,0 -1,0 +1,1 @@@ ++libdw1t64: package-name-doesnt-match-sonames libdw1 diff --cc debian/libdw1t64.symbols index 0000000,0000000..1bc3c74 new file mode 100644 --- /dev/null +++ b/debian/libdw1t64.symbols @@@ -1,0 -1,0 +1,34 @@@ ++libdw.so.1 libdw1t64 #MINVER# ++ (symver)ELFUTILS_0.122 0.126 ++ (symver)ELFUTILS_0.126 0.126 ++ (symver)ELFUTILS_0.127 0.127 ++ (symver)ELFUTILS_0.130 0.130 ++ (symver)ELFUTILS_0.136 0.136 ++ (symver)ELFUTILS_0.138 0.138 ++ (symver)ELFUTILS_0.142 0.142 ++ (symver)ELFUTILS_0.143 0.143 ++ (symver)ELFUTILS_0.144 0.144 ++ (symver)ELFUTILS_0.146 0.146 ++ (symver)ELFUTILS_0.148 0.148 ++ (symver)ELFUTILS_0.149 0.149 ++ (symver)ELFUTILS_0.156 0.156 ++ (symver)ELFUTILS_0.157 0.157 ++ (symver)ELFUTILS_0.158 0.158 ++ (symver)ELFUTILS_0.159 0.159 ++ (symver)ELFUTILS_0.160 0.160 ++ (symver)ELFUTILS_0.161 0.161 ++ (symver)ELFUTILS_0.165 0.165 ++ (symver)ELFUTILS_0.167 0.167 ++ (symver)ELFUTILS_0.170 0.170 ++ (symver)ELFUTILS_0.171 0.171 ++ (symver)ELFUTILS_0.173 0.173 ++ (symver)ELFUTILS_0.175 0.175 ++ (symver)ELFUTILS_0.177 0.177 ++ (symver)ELFUTILS_0.186 0.186 ++ (symver)ELFUTILS_0.188 0.188 ++ (symver)ELFUTILS_0.191 0.191 ++ (symver)ELFUTILS_0.192 0.192 ++ (symver)ELFUTILS_0.193 0.193 ++ (symver)ELFUTILS_0.193_EXPERIMENTAL 0.193 ++ (symver)ELFUTILS_0.194_EXPERIMENTAL 0.194 ++ (symver)ELFUTILS_0 0.126 diff --cc debian/libelf-dev.install index 0000000,0000000..f307906 new file mode 100644 --- /dev/null +++ b/debian/libelf-dev.install @@@ -1,0 -1,0 +1,11 @@@ ++usr/include/libelf.h ++usr/include/gelf.h ++usr/include/nlist.h ++usr/include/elfutils/elf-knowledge.h ++usr/include/elfutils/version.h ++usr/lib/*/libelf.a ++usr/lib/*/libelf.so ++usr/lib/*/pkgconfig/libelf.pc ++usr/share/man/man3/gelf*.3 ++usr/share/man/man3/elf*.3 ++usr/share/man/man3/libelf.3 diff --cc debian/libelf1t64.install index 0000000,0000000..4e2d096 new file mode 100644 --- /dev/null +++ b/debian/libelf1t64.install @@@ -1,0 -1,0 +1,3 @@@ ++usr/lib/*/libelf.so.1 ++usr/lib/*/libelf-*.so ++usr/share/locale/ diff --cc debian/libelf1t64.lintian-overrides index 0000000,0000000..aaf10ca new file mode 100644 --- /dev/null +++ b/debian/libelf1t64.lintian-overrides @@@ -1,0 -1,0 +1,1 @@@ ++libelf1t64: package-name-doesnt-match-sonames libelf1 diff --cc debian/libelf1t64.symbols index 0000000,0000000..aec1602 new file mode 100644 --- /dev/null +++ b/debian/libelf1t64.symbols @@@ -1,0 -1,0 +1,10 @@@ ++libelf.so.1 libelf1t64 #MINVER# ++ (symver)ELFUTILS_1.0 0.131 ++ (symver)ELFUTILS_1.1 0.131 ++ (symver)ELFUTILS_1.1.1 0.131 ++ (symver)ELFUTILS_1.2 0.131 ++ (symver)ELFUTILS_1.3 0.131 ++ (symver)ELFUTILS_1.4 0.132 ++ (symver)ELFUTILS_1.5 0.142 ++ (symver)ELFUTILS_1.6 0.144 ++ (symver)ELFUTILS_1.7 0.165 diff --cc debian/patches/0001-Ignore-differences-between-mips-machine-identifiers.patch index 0000000,0000000..a9a7210 new file mode 100644 --- /dev/null +++ b/debian/patches/0001-Ignore-differences-between-mips-machine-identifiers.patch @@@ -1,0 -1,0 +1,31 @@@ ++From 77cb4a53c270d5854d3af24f19547bc3de825233 Mon Sep 17 00:00:00 2001 ++From: James Cowgill ++Date: Mon, 5 Jan 2015 15:16:58 +0000 ++Subject: [PATCH 1/3] Ignore differences between mips machine identifiers ++ ++Little endian binaries actually use EM_MIPS so you can't tell the endianness ++from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the ++kernel will not load binaries containing it). ++ ++Signed-off-by: James Cowgill ++--- ++ backends/mips_init.c | 6 +----- ++ 1 file changed, 1 insertion(+), 5 deletions(-) ++ ++Index: b/backends/mips_init.c ++=================================================================== ++--- a/backends/mips_init.c +++++ b/backends/mips_init.c ++@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unus ++ return NULL; ++ ++ /* We handle it. */ ++- if (machine == EM_MIPS) ++- eh->name = "MIPS R3000 big-endian"; ++- else if (machine == EM_MIPS_RS3_LE) ++- eh->name = "MIPS R3000 little-endian"; ++- +++ eh->name = "MIPS"; ++ mips_init_reloc (eh); ++ HOOK (eh, reloc_simple_type); ++ HOOK (eh, return_value_location); diff --cc debian/patches/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch index 0000000,0000000..72125c9 new file mode 100644 --- /dev/null +++ b/debian/patches/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch @@@ -1,0 -1,0 +1,168 @@@ ++From fdaab18a65ed2529656baa64cb6169f34d7e507b Mon Sep 17 00:00:00 2001 ++From: James Cowgill ++Date: Mon, 5 Jan 2015 15:17:01 +0000 ++Subject: [PATCH 2/3] Add support for mips64 abis in mips_retval.c ++ ++Signed-off-by: James Cowgill ++--- ++ backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- ++ 1 file changed, 94 insertions(+), 10 deletions(-) ++ ++diff --git a/backends/mips_retval.c b/backends/mips_retval.c ++index 33f12a7..d5c6ef0 100644 ++--- a/backends/mips_retval.c +++++ b/backends/mips_retval.c ++@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) ++ default: ++ if ((elf_flags & EF_MIPS_ABI2)) ++ return MIPS_ABI_N32; +++ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64)) +++ return MIPS_ABI_N64; ++ } ++ ++ /* GCC creates a pseudo-section whose name describes the ABI. */ ++@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] = ++ }; ++ #define nloc_aggregate 1 ++ +++/* Test if a struct member is a float */ +++static int is_float_child(Dwarf_Die *childdie) +++{ +++ /* Test if this is actually a struct member */ +++ if (dwarf_tag(childdie) != DW_TAG_member) +++ return 0; +++ +++ /* Get type of member */ +++ Dwarf_Attribute attr_mem; +++ Dwarf_Die child_type_mem; +++ Dwarf_Die *child_typedie = +++ dwarf_formref_die(dwarf_attr_integrate(childdie, +++ DW_AT_type, +++ &attr_mem), &child_type_mem); +++ +++ if (dwarf_tag(child_typedie) != DW_TAG_base_type) +++ return 0; +++ +++ /* Get base subtype */ +++ Dwarf_Word encoding; +++ if (dwarf_formudata (dwarf_attr_integrate (child_typedie, +++ DW_AT_encoding, +++ &attr_mem), &encoding) != 0) +++ return 0; +++ +++ return encoding == DW_ATE_float; +++} +++ +++/* Returns the number of fpregs which can be returned in the given struct */ +++static int get_struct_fpregs(Dwarf_Die *structtypedie) +++{ +++ Dwarf_Die child_mem; +++ int fpregs = 0; +++ +++ /* Get first structure member */ +++ if (dwarf_child(structtypedie, &child_mem) != 0) +++ return 0; +++ +++ do +++ { +++ /* Ensure this register is a float */ +++ if (!is_float_child(&child_mem)) +++ return 0; +++ +++ fpregs++; +++ } +++ while (dwarf_siblingof (&child_mem, &child_mem) == 0); +++ +++ return fpregs; +++} +++ ++ int ++ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) ++ { ++@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) ++ tag = dwarf_tag (typedie); ++ } ++ +++ Dwarf_Word size; ++ switch (tag) ++ { ++ case -1: ++@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) ++ case DW_TAG_enumeration_type: ++ case DW_TAG_pointer_type: ++ case DW_TAG_ptr_to_member_type: ++- { ++- Dwarf_Word size; ++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, ++ &attr_mem), &size) != 0) ++ { ++@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) ++ if (size <= 4*regsize && abi == MIPS_ABI_O32) ++ return nloc_fpregquad; ++ ++- goto aggregate; +++ goto large; ++ } ++ } ++ *locp = ABI_LOC(loc_intreg, regsize); ++@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) ++ if (size <= 2*regsize) ++ return nloc_intregpair; ++ ++- /* Else fall through. Shouldn't happen though (at least with gcc) */ ++- } +++ /* Else pass in memory. Shouldn't happen though (at least with gcc) */ +++ goto large; ++ ++ case DW_TAG_structure_type: ++ case DW_TAG_class_type: ++ case DW_TAG_union_type: ++- case DW_TAG_array_type: ++- aggregate: ++- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ ++- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) ++- return -2; +++ /* Handle special cases for structures <= 128 bytes in newer ABIs */ +++ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 || +++ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64) +++ { +++ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16) +++ { +++ /* +++ * Special case in N64 / N32 - +++ * structures containing only floats are returned in fp regs. +++ * Everything else is returned in integer regs. +++ */ +++ if (tag != DW_TAG_union_type && +++ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)) +++ { +++ int num_fpregs = get_struct_fpregs(typedie); +++ if (num_fpregs == 1 || num_fpregs == 2) +++ { +++ *locp = loc_fpreg; +++ if (num_fpregs == 1) +++ return nloc_fpreg; +++ else +++ return nloc_fpregpair; +++ } +++ } +++ +++ *locp = loc_intreg; +++ if (size <= 8) +++ return nloc_intreg; +++ else +++ return nloc_intregpair; +++ } +++ } +++ +++ /* Fallthrough to handle large types */ ++ +++ case DW_TAG_array_type: +++ large: +++ /* Return large structures in memory */ ++ *locp = loc_aggregate; ++ return nloc_aggregate; ++ } ++-- ++2.1.4 ++ diff --cc debian/patches/0003-Add-mips-n64-relocation-format-hack.patch index 0000000,0000000..7cefeae new file mode 100644 --- /dev/null +++ b/debian/patches/0003-Add-mips-n64-relocation-format-hack.patch @@@ -1,0 -1,0 +1,226 @@@ ++From 59d4b8c48e5040af7e02b34eb26ea602ec82a38e Mon Sep 17 00:00:00 2001 ++From: James Cowgill ++Date: Mon, 5 Jan 2015 15:17:02 +0000 ++Subject: [PATCH 3/3] Add mips n64 relocation format hack ++ ++MIPSEL N64 ELF files use a slightly different format for storing relocation ++entries which is incompatible with the normal R_SYM / R_INFO macros. ++To workaround this, we rearrange the bytes in the relocation's r_info field ++when reading and writing the relocations. ++ ++This patch also ensures that strip.c sets the correct value of e_machine ++before manipulating relocations so that these changes take effect. ++ ++Signed-off-by: James Cowgill ++--- ++ libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- ++ libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- ++ libelf/gelf_update_rel.c | 20 +++++++++++++++++++- ++ libelf/gelf_update_rela.c | 20 +++++++++++++++++++- ++ src/strip.c | 17 +++++++++++++++++ ++ 5 files changed, 101 insertions(+), 6 deletions(-) ++ ++Index: elfutils-0.175/libelf/gelf_getrel.c ++=================================================================== ++--- elfutils-0.175.orig/libelf/gelf_getrel.c +++++ elfutils-0.175/libelf/gelf_getrel.c ++@@ -36,6 +36,7 @@ ++ ++ #include "libelfP.h" ++ +++#define EF_MIPS_ABI 0x0000F000 ++ ++ GElf_Rel * ++ gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) ++@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GE ++ result = NULL; ++ } ++ else ++- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], ++- sizeof (Elf64_Rel)); +++ { +++ GElf_Ehdr hdr; +++ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], +++ sizeof (Elf64_Rel)); +++ +++ if (gelf_getehdr(scn->elf, &hdr) != NULL && +++ hdr.e_ident[EI_DATA] == ELFDATA2LSB && +++ hdr.e_machine == EM_MIPS && +++ (hdr.e_flags & EF_MIPS_ABI) == 0) +++ { +++ /* +++ * The relocation format is mangled on MIPSEL N64 +++ * We'll adjust it so at least R_SYM will work on it +++ */ +++ GElf_Xword r_info = dst->r_info; +++ dst->r_info = (r_info << 32) | +++ ((r_info >> 8) & 0xFF000000) | +++ ((r_info >> 24) & 0x00FF0000) | +++ ((r_info >> 40) & 0x0000FF00) | +++ ((r_info >> 56) & 0x000000FF); +++ } +++ } ++ } ++ ++ rwlock_unlock (scn->elf->lock); ++Index: elfutils-0.175/libelf/gelf_getrela.c ++=================================================================== ++--- elfutils-0.175.orig/libelf/gelf_getrela.c +++++ elfutils-0.175/libelf/gelf_getrela.c ++@@ -36,6 +36,7 @@ ++ ++ #include "libelfP.h" ++ +++#define EF_MIPS_ABI 0x0000F000 ++ ++ GElf_Rela * ++ gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) ++@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, G ++ result = NULL; ++ } ++ else ++- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], ++- sizeof (Elf64_Rela)); +++ { +++ GElf_Ehdr hdr; +++ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], +++ sizeof (Elf64_Rela)); +++ +++ if (gelf_getehdr(scn->elf, &hdr) != NULL && +++ hdr.e_ident[EI_DATA] == ELFDATA2LSB && +++ hdr.e_machine == EM_MIPS && +++ (hdr.e_flags & EF_MIPS_ABI) == 0) +++ { +++ /* +++ * The relocation format is mangled on MIPSEL N64 +++ * We'll adjust it so at least R_SYM will work on it +++ */ +++ GElf_Xword r_info = dst->r_info; +++ dst->r_info = (r_info << 32) | +++ ((r_info >> 8) & 0xFF000000) | +++ ((r_info >> 24) & 0x00FF0000) | +++ ((r_info >> 40) & 0x0000FF00) | +++ ((r_info >> 56) & 0x000000FF); +++ } +++ } ++ } ++ ++ rwlock_unlock (scn->elf->lock); ++Index: elfutils-0.175/libelf/gelf_update_rel.c ++=================================================================== ++--- elfutils-0.175.orig/libelf/gelf_update_rel.c +++++ elfutils-0.175/libelf/gelf_update_rel.c ++@@ -36,6 +36,7 @@ ++ ++ #include "libelfP.h" ++ +++#define EF_MIPS_ABI 0x0000F000 ++ ++ int ++ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) ++@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, ++ } ++ else ++ { +++ GElf_Ehdr hdr; +++ GElf_Rel value = *src; +++ ++ /* Check whether we have to resize the data buffer. */ ++ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) ++ { ++@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, ++ goto out; ++ } ++ ++- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src; +++ if (gelf_getehdr(scn->elf, &hdr) != NULL && +++ hdr.e_ident[EI_DATA] == ELFDATA2LSB && +++ hdr.e_machine == EM_MIPS && +++ (hdr.e_flags & EF_MIPS_ABI) == 0) +++ { +++ /* Undo the MIPSEL N64 hack from gelf_getrel */ +++ GElf_Xword r_info = value.r_info; +++ value.r_info = (r_info >> 32) | +++ ((r_info << 8) & 0x000000FF00000000) | +++ ((r_info << 24) & 0x0000FF0000000000) | +++ ((r_info << 40) & 0x00FF000000000000) | +++ ((r_info << 56) & 0xFF00000000000000); +++ } +++ +++ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value; ++ } ++ ++ result = 1; ++Index: elfutils-0.175/libelf/gelf_update_rela.c ++=================================================================== ++--- elfutils-0.175.orig/libelf/gelf_update_rela.c +++++ elfutils-0.175/libelf/gelf_update_rela.c ++@@ -36,6 +36,7 @@ ++ ++ #include "libelfP.h" ++ +++#define EF_MIPS_ABI 0x0000F000 ++ ++ int ++ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) ++@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx ++ } ++ else ++ { +++ GElf_Ehdr hdr; +++ GElf_Rela value = *src; +++ ++ /* Check whether we have to resize the data buffer. */ ++ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) ++ { ++@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx ++ goto out; ++ } ++ ++- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src; +++ if (gelf_getehdr(scn->elf, &hdr) != NULL && +++ hdr.e_ident[EI_DATA] == ELFDATA2LSB && +++ hdr.e_machine == EM_MIPS && +++ (hdr.e_flags & EF_MIPS_ABI) == 0) +++ { +++ /* Undo the MIPSEL N64 hack from gelf_getrel */ +++ GElf_Xword r_info = value.r_info; +++ value.r_info = (r_info >> 32) | +++ ((r_info << 8) & 0x000000FF00000000) | +++ ((r_info << 24) & 0x0000FF0000000000) | +++ ((r_info << 40) & 0x00FF000000000000) | +++ ((r_info << 56) & 0xFF00000000000000); +++ } +++ +++ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value; ++ } ++ ++ result = 1; ++Index: elfutils-0.175/src/strip.c ++=================================================================== ++--- elfutils-0.175.orig/src/strip.c +++++ elfutils-0.175/src/strip.c ++@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char ++ goto fail; ++ } ++ +++ /* Copy identity part of the ELF header now */ +++ newehdr = gelf_getehdr (newelf, &newehdr_mem); +++ if (newehdr == NULL) +++ INTERNAL_ERROR (fname); +++ +++ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT); +++ newehdr->e_type = ehdr->e_type; +++ newehdr->e_machine = ehdr->e_machine; +++ newehdr->e_version = ehdr->e_version; +++ +++ if (gelf_update_ehdr (newelf, newehdr) == 0) +++ { +++ error (0, 0, gettext ("%s: error while creating ELF header: %s"), +++ fname, elf_errmsg (-1)); +++ return 1; +++ } +++ ++ /* Copy over the old program header if needed. */ ++ if (phnum > 0) ++ { diff --cc debian/patches/arm_backend.diff index 0000000,0000000..6a85baf new file mode 100644 --- /dev/null +++ b/debian/patches/arm_backend.diff @@@ -1,0 -1,0 +1,600 @@@ ++Index: elfutils-0.175/backends/arm_init.c ++=================================================================== ++--- elfutils-0.175.orig/backends/arm_init.c +++++ elfutils-0.175/backends/arm_init.c ++@@ -35,20 +35,31 @@ ++ #define RELOC_PREFIX R_ARM_ ++ #include "libebl_CPU.h" ++ +++#include "libebl_arm.h" +++ ++ /* This defines the common reloc hooks based on arm_reloc.def. */ ++ #include "common-reloc.c" ++ ++ ++ const char * ++-arm_init (Elf *elf __attribute__ ((unused)), +++arm_init (Elf *elf, ++ GElf_Half machine __attribute__ ((unused)), ++ Ebl *eh, ++ size_t ehlen) ++ { +++ int soft_float = 0; +++ ++ /* Check whether the Elf_BH object has a sufficent size. */ ++ if (ehlen < sizeof (Ebl)) ++ return NULL; ++ +++ if (elf) { +++ GElf_Ehdr ehdr_mem; +++ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); +++ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT)) +++ soft_float = 1; +++ } +++ ++ /* We handle it. */ ++ eh->name = "ARM"; ++ arm_init_reloc (eh); ++@@ -60,7 +71,10 @@ arm_init (Elf *elf __attribute__ ((unuse ++ HOOK (eh, core_note); ++ HOOK (eh, auxv_info); ++ HOOK (eh, check_object_attribute); ++- HOOK (eh, return_value_location); +++ if (soft_float) +++ eh->return_value_location = arm_return_value_location_soft; +++ else +++ eh->return_value_location = arm_return_value_location_hard; ++ HOOK (eh, abi_cfi); ++ HOOK (eh, check_reloc_target_type); ++ HOOK (eh, symbol_type_name); ++Index: elfutils-0.175/backends/arm_regs.c ++=================================================================== ++--- elfutils-0.175.orig/backends/arm_regs.c +++++ elfutils-0.175/backends/arm_regs.c ++@@ -31,6 +31,7 @@ ++ #endif ++ ++ #include +++#include ++ #include ++ ++ #define BACKEND arm_ ++@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute_ ++ break; ++ ++ case 16 + 0 ... 16 + 7: +++ /* AADWARF says that there are no registers in that range, +++ * but gcc maps FPA registers here +++ */ ++ regno += 96 - 16; ++ FALLTHROUGH; ++ case 96 + 0 ... 96 + 7: ++@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute_ ++ namelen = 2; ++ break; ++ +++ case 64 + 0 ... 64 + 9: +++ *setname = "VFP"; +++ *bits = 32; +++ *type = DW_ATE_float; +++ name[0] = 's'; +++ name[1] = regno - 64 + '0'; +++ namelen = 2; +++ break; +++ +++ case 64 + 10 ... 64 + 31: +++ *setname = "VFP"; +++ *bits = 32; +++ *type = DW_ATE_float; +++ name[0] = 's'; +++ name[1] = (regno - 64) / 10 + '0'; +++ name[2] = (regno - 64) % 10 + '0'; +++ namelen = 3; +++ break; +++ +++ case 104 + 0 ... 104 + 7: +++ /* XXX TODO: +++ * This can be either intel wireless MMX general purpose/control +++ * registers or xscale accumulator, which have different usage. +++ * We only have the intel wireless MMX here now. +++ * The name needs to be changed for the xscale accumulator too. */ +++ *setname = "MMX"; +++ *type = DW_ATE_unsigned; +++ *bits = 32; +++ memcpy(name, "wcgr", 4); +++ name[4] = regno - 104 + '0'; +++ namelen = 5; +++ break; +++ +++ case 112 + 0 ... 112 + 9: +++ *setname = "MMX"; +++ *type = DW_ATE_unsigned; +++ *bits = 64; +++ name[0] = 'w'; +++ name[1] = 'r'; +++ name[2] = regno - 112 + '0'; +++ namelen = 3; +++ break; +++ +++ case 112 + 10 ... 112 + 15: +++ *setname = "MMX"; +++ *type = DW_ATE_unsigned; +++ *bits = 64; +++ name[0] = 'w'; +++ name[1] = 'r'; +++ name[2] = '1'; +++ name[3] = regno - 112 - 10 + '0'; +++ namelen = 4; +++ break; +++ ++ case 128: +++ *setname = "state"; ++ *type = DW_ATE_unsigned; ++ return stpcpy (name, "spsr") + 1 - name; ++ +++ case 129: +++ *setname = "state"; +++ *type = DW_ATE_unsigned; +++ return stpcpy(name, "spsr_fiq") + 1 - name; +++ +++ case 130: +++ *setname = "state"; +++ *type = DW_ATE_unsigned; +++ return stpcpy(name, "spsr_irq") + 1 - name; +++ +++ case 131: +++ *setname = "state"; +++ *type = DW_ATE_unsigned; +++ return stpcpy(name, "spsr_abt") + 1 - name; +++ +++ case 132: +++ *setname = "state"; +++ *type = DW_ATE_unsigned; +++ return stpcpy(name, "spsr_und") + 1 - name; +++ +++ case 133: +++ *setname = "state"; +++ *type = DW_ATE_unsigned; +++ return stpcpy(name, "spsr_svc") + 1 - name; +++ +++ case 144 ... 150: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1; +++ +++ case 151 ... 157: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1; +++ +++ case 158 ... 159: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1; +++ +++ case 160 ... 161: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1; +++ +++ case 162 ... 163: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_und", regno - 162 + 13) + 1; +++ +++ case 164 ... 165: +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1; +++ +++ case 192 ... 199: +++ *setname = "MMX"; +++ *bits = 32; +++ *type = DW_ATE_unsigned; +++ name[0] = 'w'; +++ name[1] = 'c'; +++ name[2] = regno - 192 + '0'; +++ namelen = 3; +++ break; +++ ++ case 256 + 0 ... 256 + 9: +++ /* XXX TODO: Neon also uses those registers and can contain +++ * both float and integers */ ++ *setname = "VFP"; ++ *type = DW_ATE_float; ++ *bits = 64; ++Index: elfutils-0.175/backends/arm_retval.c ++=================================================================== ++--- elfutils-0.175.orig/backends/arm_retval.c +++++ elfutils-0.175/backends/arm_retval.c ++@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] = ++ #define nloc_intreg 1 ++ #define nloc_intregs(n) (2 * (n)) ++ +++/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */ +++static const Dwarf_Op loc_fpreg[] = +++ { +++ { .atom = DW_OP_reg16 }, +++ }; +++#define nloc_fpreg 1 +++ ++ /* The return value is a structure and is actually stored in stack space ++ passed in a hidden argument by the caller. But, the compiler ++ helpfully returns the address of that space in r0. */ ++@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] = ++ #define nloc_aggregate 1 ++ ++ ++-int ++-arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++static int +++arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, +++ int soft_float) ++ { ++ /* Start with the function's type, and get the DW_AT_type attribute, ++ which is the type of the return value. */ ++@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *fu ++ else ++ return -1; ++ } +++ if (tag == DW_TAG_base_type) +++ { +++ Dwarf_Word encoding; +++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, +++ &attr_mem), &encoding) != 0) +++ return -1; +++ +++ if ((encoding == DW_ATE_float) && !soft_float) +++ { +++ *locp = loc_fpreg; +++ if (size <= 8) +++ return nloc_fpreg; +++ goto aggregate; +++ } +++ } ++ if (size <= 16) ++ { ++ intreg: ++@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *fu ++ } ++ ++ aggregate: +++ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */ ++ *locp = loc_aggregate; ++ return nloc_aggregate; ++ } ++@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *fu ++ DWARF and might be valid. */ ++ return -2; ++ } +++ +++/* return location for -mabi=apcs-gnu -msoft-float */ +++int +++arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++{ +++ return arm_return_value_location_ (functypedie, locp, 1); +++} +++ +++/* return location for -mabi=apcs-gnu -mhard-float (current default) */ +++int +++arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++{ +++ return arm_return_value_location_ (functypedie, locp, 0); +++} +++ ++Index: elfutils-0.175/libelf/elf.h ++=================================================================== ++--- elfutils-0.175.orig/libelf/elf.h +++++ elfutils-0.175/libelf/elf.h ++@@ -2694,6 +2694,9 @@ enum ++ #define EF_ARM_EABI_VER4 0x04000000 ++ #define EF_ARM_EABI_VER5 0x05000000 ++ +++/* EI_OSABI values */ +++#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */ +++ ++ /* Additional symbol types for Thumb. */ ++ #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ ++ #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ ++@@ -2711,12 +2714,19 @@ enum ++ ++ /* Processor specific values for the Phdr p_type field. */ ++ #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ +++#define PT_ARM_UNWIND PT_ARM_EXIDX ++ ++ /* Processor specific values for the Shdr sh_type field. */ ++ #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ ++ #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ ++ #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ ++ +++/* Processor specific values for the Dyn d_tag field. */ +++#define DT_ARM_RESERVED1 (DT_LOPROC + 0) +++#define DT_ARM_SYMTABSZ (DT_LOPROC + 1) +++#define DT_ARM_PREEMTMAB (DT_LOPROC + 2) +++#define DT_ARM_RESERVED2 (DT_LOPROC + 3) +++#define DT_ARM_NUM 4 ++ ++ /* AArch64 relocs. */ ++ ++@@ -3009,6 +3019,7 @@ enum ++ TLS block (LDR, STR). */ ++ #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative ++ to GOT origin (LDR). */ +++/* 112 - 127 private range */ ++ #define R_ARM_ME_TOO 128 /* Obsolete. */ ++ #define R_ARM_THM_TLS_DESCSEQ 129 ++ #define R_ARM_THM_TLS_DESCSEQ16 129 ++Index: elfutils-0.175/backends/libebl_arm.h ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/libebl_arm.h ++@@ -0,0 +1,9 @@ +++#ifndef _LIBEBL_ARM_H +++#define _LIBEBL_ARM_H 1 +++ +++#include +++ +++extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp); +++extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp); +++ +++#endif ++Index: elfutils-0.175/tests/run-allregs.sh ++=================================================================== ++--- elfutils-0.175.orig/tests/run-allregs.sh +++++ elfutils-0.175/tests/run-allregs.sh ++@@ -2672,7 +2672,28 @@ integer registers: ++ 13: sp (sp), address 32 bits ++ 14: lr (lr), address 32 bits ++ 15: pc (pc), address 32 bits ++- 128: spsr (spsr), unsigned 32 bits +++ 144: r8_usr (r8_usr), signed 32 bits +++ 145: r9_usr (r9_usr), signed 32 bits +++ 146: r10_usr (r10_usr), signed 32 bits +++ 147: r11_usr (r11_usr), signed 32 bits +++ 148: r12_usr (r12_usr), signed 32 bits +++ 149: r13_usr (r13_usr), signed 32 bits +++ 150: r14_usr (r14_usr), signed 32 bits +++ 151: r8_fiq (r8_fiq), signed 32 bits +++ 152: r9_fiq (r9_fiq), signed 32 bits +++ 153: r10_fiq (r10_fiq), signed 32 bits +++ 154: r11_fiq (r11_fiq), signed 32 bits +++ 155: r12_fiq (r12_fiq), signed 32 bits +++ 156: r13_fiq (r13_fiq), signed 32 bits +++ 157: r14_fiq (r14_fiq), signed 32 bits +++ 158: r13_irq (r13_irq), signed 32 bits +++ 159: r14_irq (r14_irq), signed 32 bits +++ 160: r13_abt (r13_abt), signed 32 bits +++ 161: r14_abt (r14_abt), signed 32 bits +++ 162: r13_und (r13_und), signed 32 bits +++ 163: r14_und (r14_und), signed 32 bits +++ 164: r13_svc (r13_svc), signed 32 bits +++ 165: r14_svc (r14_svc), signed 32 bits ++ FPA registers: ++ 16: f0 (f0), float 96 bits ++ 17: f1 (f1), float 96 bits ++@@ -2690,7 +2711,72 @@ FPA registers: ++ 101: f5 (f5), float 96 bits ++ 102: f6 (f6), float 96 bits ++ 103: f7 (f7), float 96 bits +++MMX registers: +++ 104: wcgr0 (wcgr0), unsigned 32 bits +++ 105: wcgr1 (wcgr1), unsigned 32 bits +++ 106: wcgr2 (wcgr2), unsigned 32 bits +++ 107: wcgr3 (wcgr3), unsigned 32 bits +++ 108: wcgr4 (wcgr4), unsigned 32 bits +++ 109: wcgr5 (wcgr5), unsigned 32 bits +++ 110: wcgr6 (wcgr6), unsigned 32 bits +++ 111: wcgr7 (wcgr7), unsigned 32 bits +++ 112: wr0 (wr0), unsigned 64 bits +++ 113: wr1 (wr1), unsigned 64 bits +++ 114: wr2 (wr2), unsigned 64 bits +++ 115: wr3 (wr3), unsigned 64 bits +++ 116: wr4 (wr4), unsigned 64 bits +++ 117: wr5 (wr5), unsigned 64 bits +++ 118: wr6 (wr6), unsigned 64 bits +++ 119: wr7 (wr7), unsigned 64 bits +++ 120: wr8 (wr8), unsigned 64 bits +++ 121: wr9 (wr9), unsigned 64 bits +++ 122: wr10 (wr10), unsigned 64 bits +++ 123: wr11 (wr11), unsigned 64 bits +++ 124: wr12 (wr12), unsigned 64 bits +++ 125: wr13 (wr13), unsigned 64 bits +++ 126: wr14 (wr14), unsigned 64 bits +++ 127: wr15 (wr15), unsigned 64 bits +++ 192: wc0 (wc0), unsigned 32 bits +++ 193: wc1 (wc1), unsigned 32 bits +++ 194: wc2 (wc2), unsigned 32 bits +++ 195: wc3 (wc3), unsigned 32 bits +++ 196: wc4 (wc4), unsigned 32 bits +++ 197: wc5 (wc5), unsigned 32 bits +++ 198: wc6 (wc6), unsigned 32 bits +++ 199: wc7 (wc7), unsigned 32 bits ++ VFP registers: +++ 64: s0 (s0), float 32 bits +++ 65: s1 (s1), float 32 bits +++ 66: s2 (s2), float 32 bits +++ 67: s3 (s3), float 32 bits +++ 68: s4 (s4), float 32 bits +++ 69: s5 (s5), float 32 bits +++ 70: s6 (s6), float 32 bits +++ 71: s7 (s7), float 32 bits +++ 72: s8 (s8), float 32 bits +++ 73: s9 (s9), float 32 bits +++ 74: s10 (s10), float 32 bits +++ 75: s11 (s11), float 32 bits +++ 76: s12 (s12), float 32 bits +++ 77: s13 (s13), float 32 bits +++ 78: s14 (s14), float 32 bits +++ 79: s15 (s15), float 32 bits +++ 80: s16 (s16), float 32 bits +++ 81: s17 (s17), float 32 bits +++ 82: s18 (s18), float 32 bits +++ 83: s19 (s19), float 32 bits +++ 84: s20 (s20), float 32 bits +++ 85: s21 (s21), float 32 bits +++ 86: s22 (s22), float 32 bits +++ 87: s23 (s23), float 32 bits +++ 88: s24 (s24), float 32 bits +++ 89: s25 (s25), float 32 bits +++ 90: s26 (s26), float 32 bits +++ 91: s27 (s27), float 32 bits +++ 92: s28 (s28), float 32 bits +++ 93: s29 (s29), float 32 bits +++ 94: s30 (s30), float 32 bits +++ 95: s31 (s31), float 32 bits ++ 256: d0 (d0), float 64 bits ++ 257: d1 (d1), float 64 bits ++ 258: d2 (d2), float 64 bits ++@@ -2723,6 +2809,13 @@ VFP registers: ++ 285: d29 (d29), float 64 bits ++ 286: d30 (d30), float 64 bits ++ 287: d31 (d31), float 64 bits +++state registers: +++ 128: spsr (spsr), unsigned 32 bits +++ 129: spsr_fiq (spsr_fiq), unsigned 32 bits +++ 130: spsr_irq (spsr_irq), unsigned 32 bits +++ 131: spsr_abt (spsr_abt), unsigned 32 bits +++ 132: spsr_und (spsr_und), unsigned 32 bits +++ 133: spsr_svc (spsr_svc), unsigned 32 bits ++ EOF ++ ++ # See run-readelf-mixed-corenote.sh for instructions to regenerate ++Index: elfutils-0.175/tests/run-readelf-mixed-corenote.sh ++=================================================================== ++--- elfutils-0.175.orig/tests/run-readelf-mixed-corenote.sh +++++ elfutils-0.175/tests/run-readelf-mixed-corenote.sh ++@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x27 ++ pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 ++ utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 ++ orig_r0: -1, fpvalid: 1 ++- r0: 1 r1: -1091672508 r2: -1091672500 ++- r3: 0 r4: 0 r5: 0 ++- r6: 33728 r7: 0 r8: 0 ++- r9: 0 r10: -1225703496 r11: -1091672844 ++- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 ++- pc: 0x00008500 spsr: 0x60000010 +++ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0 +++ r4: 0 r5: 0 r6: 33728 r7: 0 +++ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844 +++ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500 +++ spsr: 0x60000010 ++ CORE 124 PRPSINFO ++ state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 ++ uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 ++Index: elfutils-0.175/tests/run-addrcfi.sh ++=================================================================== ++--- elfutils-0.175.orig/tests/run-addrcfi.sh +++++ elfutils-0.175/tests/run-addrcfi.sh ++@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matc ++ FPA reg21 (f5): undefined ++ FPA reg22 (f6): undefined ++ FPA reg23 (f7): undefined +++ VFP reg64 (s0): undefined +++ VFP reg65 (s1): undefined +++ VFP reg66 (s2): undefined +++ VFP reg67 (s3): undefined +++ VFP reg68 (s4): undefined +++ VFP reg69 (s5): undefined +++ VFP reg70 (s6): undefined +++ VFP reg71 (s7): undefined +++ VFP reg72 (s8): undefined +++ VFP reg73 (s9): undefined +++ VFP reg74 (s10): undefined +++ VFP reg75 (s11): undefined +++ VFP reg76 (s12): undefined +++ VFP reg77 (s13): undefined +++ VFP reg78 (s14): undefined +++ VFP reg79 (s15): undefined +++ VFP reg80 (s16): undefined +++ VFP reg81 (s17): undefined +++ VFP reg82 (s18): undefined +++ VFP reg83 (s19): undefined +++ VFP reg84 (s20): undefined +++ VFP reg85 (s21): undefined +++ VFP reg86 (s22): undefined +++ VFP reg87 (s23): undefined +++ VFP reg88 (s24): undefined +++ VFP reg89 (s25): undefined +++ VFP reg90 (s26): undefined +++ VFP reg91 (s27): undefined +++ VFP reg92 (s28): undefined +++ VFP reg93 (s29): undefined +++ VFP reg94 (s30): undefined +++ VFP reg95 (s31): undefined ++ FPA reg96 (f0): undefined ++ FPA reg97 (f1): undefined ++ FPA reg98 (f2): undefined ++@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matc ++ FPA reg101 (f5): undefined ++ FPA reg102 (f6): undefined ++ FPA reg103 (f7): undefined ++- integer reg128 (spsr): undefined +++ MMX reg104 (wcgr0): undefined +++ MMX reg105 (wcgr1): undefined +++ MMX reg106 (wcgr2): undefined +++ MMX reg107 (wcgr3): undefined +++ MMX reg108 (wcgr4): undefined +++ MMX reg109 (wcgr5): undefined +++ MMX reg110 (wcgr6): undefined +++ MMX reg111 (wcgr7): undefined +++ MMX reg112 (wr0): undefined +++ MMX reg113 (wr1): undefined +++ MMX reg114 (wr2): undefined +++ MMX reg115 (wr3): undefined +++ MMX reg116 (wr4): undefined +++ MMX reg117 (wr5): undefined +++ MMX reg118 (wr6): undefined +++ MMX reg119 (wr7): undefined +++ MMX reg120 (wr8): undefined +++ MMX reg121 (wr9): undefined +++ MMX reg122 (wr10): undefined +++ MMX reg123 (wr11): undefined +++ MMX reg124 (wr12): undefined +++ MMX reg125 (wr13): undefined +++ MMX reg126 (wr14): undefined +++ MMX reg127 (wr15): undefined +++ state reg128 (spsr): undefined +++ state reg129 (spsr_fiq): undefined +++ state reg130 (spsr_irq): undefined +++ state reg131 (spsr_abt): undefined +++ state reg132 (spsr_und): undefined +++ state reg133 (spsr_svc): undefined +++ integer reg144 (r8_usr): undefined +++ integer reg145 (r9_usr): undefined +++ integer reg146 (r10_usr): undefined +++ integer reg147 (r11_usr): undefined +++ integer reg148 (r12_usr): undefined +++ integer reg149 (r13_usr): undefined +++ integer reg150 (r14_usr): undefined +++ integer reg151 (r8_fiq): undefined +++ integer reg152 (r9_fiq): undefined +++ integer reg153 (r10_fiq): undefined +++ integer reg154 (r11_fiq): undefined +++ integer reg155 (r12_fiq): undefined +++ integer reg156 (r13_fiq): undefined +++ integer reg157 (r14_fiq): undefined +++ integer reg158 (r13_irq): undefined +++ integer reg159 (r14_irq): undefined +++ integer reg160 (r13_abt): undefined +++ integer reg161 (r14_abt): undefined +++ integer reg162 (r13_und): undefined +++ integer reg163 (r14_und): undefined +++ integer reg164 (r13_svc): undefined +++ integer reg165 (r14_svc): undefined +++ MMX reg192 (wc0): undefined +++ MMX reg193 (wc1): undefined +++ MMX reg194 (wc2): undefined +++ MMX reg195 (wc3): undefined +++ MMX reg196 (wc4): undefined +++ MMX reg197 (wc5): undefined +++ MMX reg198 (wc6): undefined +++ MMX reg199 (wc7): undefined ++ VFP reg256 (d0): undefined ++ VFP reg257 (d1): undefined ++ VFP reg258 (d2): undefined diff --cc debian/patches/disable-some-tests.diff index 0000000,0000000..7e79223 new file mode 100644 --- /dev/null +++ b/debian/patches/disable-some-tests.diff @@@ -1,0 -1,0 +1,11 @@@ ++--- a/tests/Makefile.am +++++ b/tests/Makefile.am ++@@ -37,7 +37,7 @@ tests_rpath = no ++ endif ++ ++ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ ++- showptable update1 update2 update3 update4 test-nlist \ +++ showptable update1 update2 update3 update4 \ ++ show-die-info get-files next-files get-lines next-lines \ ++ get-pubnames \ ++ get-aranges allfcts line2addr addrscopes funcscopes \ diff --cc debian/patches/disable_werror.patch index 0000000,0000000..0ce76ba new file mode 100644 --- /dev/null +++ b/debian/patches/disable_werror.patch @@@ -1,0 -1,0 +1,25 @@@ ++From: Helmut Grohne ++Subject: disable -Werror as it tends to break with new gcc versions ++Bug-Debian: https://bugs.debian.org/886004 ++Last-Update: 2018-01-01 ++ ++Index: b/config/eu.am ++=================================================================== ++--- a/config/eu.am +++++ b/config/eu.am ++@@ -99,7 +99,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W ++ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ ++ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ ++ $(USE_AFTER_FREE3_WARNING) \ ++- $(if $($(*F)_no_Werror),,-Werror) \ ++ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ ++ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ ++@@ -109,7 +108,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow ++ $(TRAMPOLINES_WARNING) \ ++ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ ++ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ ++- $(if $($(*F)_no_Werror),,-Werror) \ ++ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ ++ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ diff --cc debian/patches/elfutils-0.194-alloc-jobs.patch index 0000000,0000000..cabf590 new file mode 100644 --- /dev/null +++ b/debian/patches/elfutils-0.194-alloc-jobs.patch @@@ -1,0 -1,0 +1,135 @@@ ++From f66135f16fe44182a3fc5b651d7e5071c936217d Mon Sep 17 00:00:00 2001 ++From: Aaron Merey ++Date: Mon, 27 Oct 2025 22:00:12 -0400 ++Subject: [PATCH] readelf: Allocate job_data one-by-one as needed ++ ++Currently, job_data is stored in an array whose size is equal to the ++number of debug sections (.debug_*, .eh_frame, .gdb_index, etc.). ++ ++This size may be too small if a binary contains multiple debug sections ++with the same name. For example an ET_REL binary compiled with -ggdb3 ++can contain multiple .debug_macro sections. ++ ++Fix this by allocating job_data on the fly when preparing to read a ++debug section. This supports an arbitrary number of debug sections ++while also avoiding unnecessary memory allocation. ++ ++https://sourceware.org/bugzilla/show_bug.cgi?id=33580 ++ ++Signed-off-by: Aaron Merey ++--- ++ src/readelf.c | 49 +++++++++++++++++++++++++------------------------ ++ 1 file changed, 25 insertions(+), 24 deletions(-) ++ ++diff --git a/src/readelf.c b/src/readelf.c ++index ee6c203d..a2d17358 100644 ++--- a/src/readelf.c +++++ b/src/readelf.c ++@@ -12200,7 +12200,8 @@ getone_dwflmod (Dwfl_Module *dwflmod, ++ return DWARF_CB_OK; ++ } ++ ++-typedef struct { +++typedef struct Job_Data { +++ struct Job_Data *next; ++ Dwfl_Module *dwflmod; ++ Ebl *ebl; ++ GElf_Ehdr *ehdr; ++@@ -12230,7 +12231,7 @@ do_job (void *data, FILE *out) ++ If thread safety is not supported or the maximum number of threads is set ++ to 1, then immediately call START_ROUTINE with the given arguments. */ ++ static void ++-schedule_job (job_data jdata[], size_t idx, +++schedule_job (job_data **jdatalist, ++ void (*start_routine) (Dwfl_Module *, Ebl *, GElf_Ehdr *, ++ Elf_Scn *, GElf_Shdr *, Dwarf *, FILE *), ++ Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, ++@@ -12239,21 +12240,24 @@ schedule_job (job_data jdata[], size_t idx, ++ #ifdef USE_LOCKS ++ if (max_threads > 1) ++ { ++- /* Add to the job queue. */ ++- jdata[idx].dwflmod = dwflmod; ++- jdata[idx].ebl = ebl; ++- jdata[idx].ehdr = ehdr; ++- jdata[idx].scn = *scn; ++- jdata[idx].shdr = *shdr; ++- jdata[idx].dbg = dbg; ++- jdata[idx].fp = start_routine; +++ job_data *jdata = xmalloc (sizeof (job_data)); +++ +++ jdata->dwflmod = dwflmod; +++ jdata->ebl = ebl; +++ jdata->ehdr = ehdr; +++ jdata->scn = *scn; +++ jdata->shdr = *shdr; +++ jdata->dbg = dbg; +++ jdata->fp = start_routine; +++ jdata->next = *jdatalist; +++ *jdatalist = jdata; ++ ++- add_job (do_job, (void *) &jdata[idx]); +++ add_job (do_job, (void *) jdata); ++ } ++ else ++ start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); ++ #else ++- (void) jdata; (void) idx; +++ (void) jdatalist; ++ ++ start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); ++ #endif ++@@ -12431,8 +12435,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) ++ if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)) ++ error_exit (0, _("cannot get section header string table index")); ++ ++- ssize_t num_jobs = 0; ++- job_data *jdata = NULL; +++ job_data *jdatalist = NULL; ++ ++ /* If the .debug_info section is listed as implicitly required then ++ we must make sure to handle it before handling any other debug ++@@ -12531,13 +12534,6 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) ++ if (name == NULL) ++ continue; ++ ++- if (jdata == NULL) ++- { ++- jdata = calloc (ndebug_sections, sizeof (*jdata)); ++- if (jdata == NULL) ++- error_exit (0, _("failed to allocate job data")); ++- } ++- ++ int n; ++ for (n = 0; n < ndebug_sections; ++n) ++ { ++@@ -12561,10 +12557,9 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) ++ { ++ if (((print_debug_sections | implicit_debug_sections) ++ & debug_sections[n].bitmask)) ++- schedule_job (jdata, num_jobs++, debug_sections[n].fp, +++ schedule_job (&jdatalist, debug_sections[n].fp, ++ dwflmod, ebl, ehdr, scn, shdr, dbg); ++ ++- assert (num_jobs <= ndebug_sections); ++ break; ++ } ++ } ++@@ -12579,7 +12574,13 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) ++ ++ dwfl_end (skel_dwfl); ++ free (skel_name); ++- free (jdata); +++ +++ while (jdatalist != NULL) +++ { +++ job_data *jdata = jdatalist; +++ jdatalist = jdatalist->next; +++ free (jdata); +++ } ++ ++ /* Turn implicit and/or explicit back on in case we go over another file. */ ++ if (implicit_info) ++-- ++2.51.0 ++ diff --cc debian/patches/elfutils-0.194-fix-const.patch index 0000000,0000000..085f899 new file mode 100644 --- /dev/null +++ b/debian/patches/elfutils-0.194-fix-const.patch @@@ -1,0 -1,0 +1,301 @@@ ++From 4a5cf8be906d5991e7527e69e3f2ceaa74811301 Mon Sep 17 00:00:00 2001 ++From: Andreas Schwab ++Date: Mon, 24 Nov 2025 13:46:16 +0100 ++Subject: [PATCH] Fix const-correctness issues ++ ++These were uncovered by the C23 const-preserving library macros. ++--- ++ debuginfod/debuginfod-client.c | 2 +- ++ libcpu/riscv_disasm.c | 52 +++++++++++++++++----------------- ++ libdw/dwarf_getsrclines.c | 6 ++-- ++ src/readelf.c | 8 +++--- ++ 4 files changed, 34 insertions(+), 34 deletions(-) ++ ++diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c ++index c0ff5967..c5bc8a4f 100644 ++--- a/debuginfod/debuginfod-client.c +++++ b/debuginfod/debuginfod-client.c ++@@ -3104,7 +3104,7 @@ int debuginfod_add_http_header (debuginfod_client *client, const char* header) ++ /* Sanity check header value is of the form Header: Value. ++ It should contain at least one colon that isn't the first or ++ last character. */ ++- char *colon = strchr (header, ':'); /* first colon */ +++ const char *colon = strchr (header, ':'); /* first colon */ ++ if (colon == NULL /* present */ ++ || colon == header /* not at beginning - i.e., have a header name */ ++ || *(colon + 1) == '\0') /* not at end - i.e., have a value */ ++diff --git a/libcpu/riscv_disasm.c b/libcpu/riscv_disasm.c ++index 0dee842a..749d4567 100644 ++--- a/libcpu/riscv_disasm.c +++++ b/libcpu/riscv_disasm.c ++@@ -77,7 +77,7 @@ static const char *regnames[32] = ++ "a6", "a7", "s2", "s3", "s4", "s5", "s6", "s7", ++ "s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6" ++ }; ++-#define REG(nr) ((char *) regnames[nr]) +++#define REG(nr) regnames[nr] ++ #define REGP(nr) REG (8 + (nr)) ++ ++ ++@@ -88,7 +88,7 @@ static const char *fregnames[32] = ++ "fa6", "fa7", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7", ++ "fs8", "fs9", "fs10", "fs11", "ft8", "ft9", "ft10", "ft11" ++ }; ++-#define FREG(nr) ((char *) fregnames[nr]) +++#define FREG(nr) fregnames[nr] ++ #define FREGP(nr) FREG (8 + (nr)) ++ ++ ++@@ -163,12 +163,12 @@ riscv_disasm (Ebl *ebl, ++ break; ++ } ++ ++- char *mne = NULL; +++ const char *mne = NULL; ++ /* Max length is 24, which is "illegal", so we print it as ++ "0x<48 hex chars>" ++ See: No instruction encodings defined for these sizes yet, below */ ++ char mnebuf[50]; ++- char *op[5] = { NULL, NULL, NULL, NULL, NULL }; +++ const char *op[5] = { NULL, NULL, NULL, NULL, NULL }; ++ char immbuf[32]; ++ size_t len; ++ char *strp = NULL; ++@@ -400,7 +400,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ "sub", "xor", "or", "and", "subw", "addw", NULL, NULL ++ }; ++- mne = (char *) arithmne[((first >> 10) & 0x4) | ((first >> 5) & 0x3)]; +++ mne = arithmne[((first >> 10) & 0x4) | ((first >> 5) & 0x3)]; ++ } ++ op[0] = op[1] = REGP ((first >> 7) & 0x7); ++ break; ++@@ -572,7 +572,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ NULL, NULL, "flw", "fld", "flq", NULL, NULL, NULL ++ }; ++- mne = (char *) (idx == 0x00 ? loadmne[func] : floadmne[func]); +++ mne = idx == 0x00 ? loadmne[func] : floadmne[func]; ++ break; ++ case 0x03: ++ // MISC-MEM ++@@ -595,8 +595,8 @@ riscv_disasm (Ebl *ebl, ++ uint32_t succ = (word >> 24) & 0xf; ++ if (pred != 0xf || succ != 0xf) ++ { ++- op[0] = (char *) order[succ]; ++- op[1] = (char *) order[pred]; +++ op[0] = order[succ]; +++ op[1] = order[pred]; ++ } ++ mne = "fence"; ++ } ++@@ -614,7 +614,7 @@ riscv_disasm (Ebl *ebl, ++ "addi", NULL, "slti", "sltiu", "xori", NULL, "ori", "andi" ++ }; ++ func = (word >> 12) & 0x7; ++- mne = (char *) opimmmne[func]; +++ mne = opimmmne[func]; ++ if (mne == NULL) ++ { ++ const uint64_t shiftmask = ebl->class == ELFCLASS32 ? 0x1f : 0x3f; ++@@ -697,7 +697,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ NULL, NULL, "fsw", "fsd", "fsq", NULL, NULL, NULL ++ }; ++- mne = (char *) (idx == 0x08 ? storemne[func] : fstoremne[func]); +++ mne = idx == 0x08 ? storemne[func] : fstoremne[func]; ++ break; ++ case 0x0b: ++ // AMO ++@@ -778,7 +778,7 @@ riscv_disasm (Ebl *ebl, ++ } ++ else ++ { ++- mne = (char *) (idx == 0x0c ? arithmne2[func] : arithmne3[func]); +++ mne = idx == 0x0c ? arithmne2[func] : arithmne3[func]; ++ op[1] = REG (rs1); ++ op[2] = REG (rs2); ++ } ++@@ -811,7 +811,7 @@ riscv_disasm (Ebl *ebl, ++ op[2] = FREG (rs2); ++ op[3] = FREG (rs3); ++ if (rm != 0x7) ++- op[4] = (char *) rndmode[rm]; +++ op[4] = rndmode[rm]; ++ } ++ break; ++ case 0x14: ++@@ -839,7 +839,7 @@ riscv_disasm (Ebl *ebl, ++ op[1] = FREG (rs1); ++ op[2] = FREG (rs2); ++ if (rm != 0x7) ++- op[3] = (char *) rndmode[rm]; +++ op[3] = rndmode[rm]; ++ } ++ else if (func == 0x1c && width != 2 && rs2 == 0 && rm <= 1) ++ { ++@@ -950,7 +950,7 @@ riscv_disasm (Ebl *ebl, ++ } ++ mne = mnebuf; ++ if (rm != 0x7 && (func == 0x18 || width == 0 || rs2 >= 2)) ++- op[2] = (char *) rndmode[rm]; +++ op[2] = rndmode[rm]; ++ } ++ else if (func == 0x0b && rs2 == 0) ++ { ++@@ -961,7 +961,7 @@ riscv_disasm (Ebl *ebl, ++ *cp = '\0'; ++ mne = mnebuf; ++ if (rm != 0x7) ++- op[2] = (char *) rndmode[rm]; +++ op[2] = rndmode[rm]; ++ } ++ else if (func == 0x05 && rm < 2) ++ { ++@@ -1007,7 +1007,7 @@ riscv_disasm (Ebl *ebl, ++ "beq", "bne", NULL, NULL, "blt", "bge", "bltu", "bgeu" ++ }; ++ func = (word >> 12) & 0x7; ++- mne = (char *) branchmne[func]; +++ mne = branchmne[func]; ++ if (rs1 == 0 && func == 5) ++ { ++ op[0] = op[1]; ++@@ -1035,7 +1035,7 @@ riscv_disasm (Ebl *ebl, ++ else if (func == 5 || func == 7) ++ { ++ // binutils use these opcodes and the reverse parameter order ++- char *tmp = op[0]; +++ const char *tmp = op[0]; ++ op[0] = op[1]; ++ op[1] = tmp; ++ mne = func == 5 ? "ble" : "bleu"; ++@@ -1103,7 +1103,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ NULL, "frflags", "frrm", "frsr", ++ }; ++- mne = (char *) unprivrw[csr - 0x000]; +++ mne = unprivrw[csr - 0x000]; ++ } ++ else if (csr >= 0xc00 && csr <= 0xc03) ++ { ++@@ -1111,7 +1111,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ "rdcycle", "rdtime", "rdinstret" ++ }; ++- mne = (char *) unprivrolow[csr - 0xc00]; +++ mne = unprivrolow[csr - 0xc00]; ++ } ++ op[0] = REG ((word >> 7) & 0x1f); ++ } ++@@ -1128,7 +1128,7 @@ riscv_disasm (Ebl *ebl, ++ { ++ NULL, "fsflagsi", "fsrmi", NULL ++ }; ++- mne = (char *) ((word & 0x4000) == 0 ? unprivrs : unprivrsi)[csr - 0x000]; +++ mne = ((word & 0x4000) == 0 ? unprivrs : unprivrsi)[csr - 0x000]; ++ ++ if ((word & 0x4000) == 0) ++ op[0] = REG ((word >> 15) & 0x1f); ++@@ -1259,12 +1259,12 @@ riscv_disasm (Ebl *ebl, ++ if (rd != 0) ++ op[last++] = REG (rd); ++ struct known_csrs key = { csr, NULL }; ++- struct known_csrs *found = bsearch (&key, known, ++- sizeof (known) / sizeof (known[0]), ++- sizeof (known[0]), ++- compare_csr); +++ const struct known_csrs *found = bsearch (&key, known, +++ sizeof (known) / sizeof (known[0]), +++ sizeof (known[0]), +++ compare_csr); ++ if (found) ++- op[last] = (char *) found->name; +++ op[last] = found->name; ++ else ++ { ++ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx32, csr); ++@@ -1289,7 +1289,7 @@ riscv_disasm (Ebl *ebl, ++ else if (instr == 3 && rd == 0) ++ mne = "csrc"; ++ else ++- mne = (char *) mnecsr[instr]; +++ mne = mnecsr[instr]; ++ } ++ break; ++ default: ++diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c ++index be10cdee..76db2929 100644 ++--- a/libdw/dwarf_getsrclines.c +++++ b/libdw/dwarf_getsrclines.c ++@@ -364,7 +364,7 @@ read_srcfiles (Dwarf *dbg, ++ const unsigned char *dirp = linep; ++ while (dirp < lineendp && *dirp != 0) ++ { ++- uint8_t *endp = memchr (dirp, '\0', lineendp - dirp); +++ const uint8_t *endp = memchr (dirp, '\0', lineendp - dirp); ++ if (endp == NULL) ++ goto invalid_data; ++ ++ndirs; ++@@ -440,7 +440,7 @@ read_srcfiles (Dwarf *dbg, ++ for (unsigned int n = 1; n < ndirlist; n++) ++ { ++ dirarray[n].dir = (char *) linep; ++- uint8_t *endp = memchr (linep, '\0', lineendp - linep); +++ const uint8_t *endp = memchr (linep, '\0', lineendp - linep); ++ assert (endp != NULL); // Checked above when calculating ndirlist. ++ dirarray[n].len = endp - linep; ++ linep = endp + 1; ++@@ -927,7 +927,7 @@ read_srclines (Dwarf *dbg, ++ case DW_LNE_define_file: ++ { ++ char *fname = (char *) linep; ++- uint8_t *endp = memchr (linep, '\0', lineendp - linep); +++ const uint8_t *endp = memchr (linep, '\0', lineendp - linep); ++ if (endp == NULL) ++ goto invalid_data; ++ size_t fnamelen = endp - linep; ++diff --git a/src/readelf.c b/src/readelf.c ++index a2d17358..fbdf8c71 100644 ++--- a/src/readelf.c +++++ b/src/readelf.c ++@@ -8269,7 +8269,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) ++ valuestr = dwarf_filesrc (files, num, NULL, NULL); ++ if (valuestr != NULL) ++ { ++- char *filename = strrchr (valuestr, '/'); +++ const char *filename = strrchr (valuestr, '/'); ++ if (filename != NULL) ++ valuestr = filename + 1; ++ } ++@@ -9033,7 +9033,7 @@ print_form_data (Dwarf *dbg, int form, const unsigned char *readp, ++ Dwarf_Off str_offsets_base, FILE *out) ++ { ++ Dwarf_Word val; ++- unsigned char *endp; +++ const unsigned char *endp; ++ Elf_Data *data; ++ char *str; ++ switch (form) ++@@ -9530,7 +9530,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, ++ { ++ while (linep < lineendp && *linep != 0) ++ { ++- unsigned char *endp = memchr (linep, '\0', lineendp - linep); +++ const unsigned char *endp = memchr (linep, '\0', lineendp - linep); ++ if (unlikely (endp == NULL)) ++ goto invalid_unit; ++ ++@@ -9764,7 +9764,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, ++ case DW_LNE_define_file: ++ { ++ char *fname = (char *) linep; ++- unsigned char *endp = memchr (linep, '\0', +++ const unsigned char *endp = memchr (linep, '\0', ++ lineendp - linep); ++ if (unlikely (endp == NULL)) ++ goto invalid_unit; ++-- ++2.52.0 ++ diff --cc debian/patches/elfutils-0.194-sh_addr-non-zero.patch index 0000000,0000000..1b3ca12 new file mode 100644 --- /dev/null +++ b/debian/patches/elfutils-0.194-sh_addr-non-zero.patch @@@ -1,0 -1,0 +1,202 @@@ ++From 0c2a240bb347743c7305b164e9dece0ccca40978 Mon Sep 17 00:00:00 2001 ++From: Mark Wielaard ++Date: Mon, 2 Mar 2026 15:51:48 +0100 ++Subject: [PATCH] libdwfl: Work around ET_REL files with sh_addr fields set to ++ non-zero ++ ++libdwfl tries to model the loading of modules (executables, shared ++libraries, the linux kernel and/or kernel modules) in ++memory. Depending on the (offline) load address it then also applies ++(simple) relocations for ET_REL (object files or kernel modules). Load ++addresses are normally represented through phdr segments for ET_EXEC ++or ET_DYN, but for ET_REL files (which don't have phdrs) the Elf ++section sh_addr fields are used. ++ ++The sh_addr fields of the ET_REL Elf images are updated in two places ++__libdwfl_elf_address_range (through __libdwfl_report_elf) and ++__libdwfl_relocate (through dwfl_module_getelf and ++dwfl_module_getdwarf). Both rely on sh_addr being zero if no load ++address has been set yet, so the address layout for each (SHF_ALLOC) ++section is done only once. ++ ++Recent linux kernels use a linker script that does set the sh_addr ++fields to (random, linker assigned) non-zero addresses. See commit ++1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related ++macros"). ++ ++The sh_addr values seems unnecessary, but because they aren't zero ++anymore our layout/relocation code doesn't know it still has to figure ++out a "real" load value for these sections. ++ ++Introduce __libdwfl_reset_sh_addr which resets all sh_addr fields to ++zero for SHF_ALLOC sections in ET_REL files. ++ ++We don't call __libdwfl_reset_sh_addr on aux_sym files (from ++.gnu_debugdata) and when constructing an Elf from a core file. In all ++other cases we know (or assume) that the Elf file is being opened ++through libdw_open_elf (called indirectly through __libdw_open_elf, ++__libdwfl_report_offline, dwfl_module_getelf and dwfl_module_getdwarf) ++ ++This technically changes the Elf that goes through libdwfl, but we ++would already update the sh_addr fields for ET_REL Elf sections in ++memory anyway to represent the load address as libdwfl would see ++them. So this isn't really a change in behavior (it just might update ++the sh_addr field twice). ++ ++ * libdwfl/libdwflP.h (__libdwfl_reset_sh_addr): Define new ++ internal function. ++ * libdwfl/relocate.c (__libdwfl_reset_sh_addr): New internal ++ function. ++ * libdwfl/open.c (libdw_open_elf): Call __libdwfl_reset_sh_addr. ++ * libdwfl/dwfl_module_getdwarf.c (open_elf_file): Add comment. ++ (find_aux_sym): Likewise. ++ (find_dw): Likewise. ++ * libdwfl/dwfl_segment_report_module.c ++ (dwfl_segment_report_module): Likewise. ++ * libdwfl/dwfl_report_elf.c (__libdwfl_report_elf): Likewise. ++ ++Signed-off-by: Mark Wielaard ++--- ++ libdwfl/dwfl_module_getdwarf.c | 3 +++ ++ libdwfl/dwfl_report_elf.c | 3 +++ ++ libdwfl/dwfl_segment_report_module.c | 2 ++ ++ libdwfl/libdwflP.h | 4 ++++ ++ libdwfl/open.c | 2 ++ ++ libdwfl/relocate.c | 32 ++++++++++++++++++++++++++++ ++ 6 files changed, 46 insertions(+) ++ ++diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c ++index 135132d69178..430c32367d01 100644 ++--- a/libdwfl/dwfl_module_getdwarf.c +++++ b/libdwfl/dwfl_module_getdwarf.c ++@@ -57,6 +57,7 @@ open_elf_file (Elf **elf, int *fd, char **name) ++ if (*fd < 0) ++ return CBFAIL; ++ +++ /* This will call __libdwfl_reset_sh_addr. */ ++ return __libdw_open_file (fd, elf, true, false); ++ } ++ else if (unlikely (elf_kind (*elf) != ELF_K_ELF)) ++@@ -1004,6 +1005,7 @@ find_aux_sym (Dwfl_Module *mod __attribute__ ((unused)), ++ free (buffer); ++ else ++ { +++ /* We don't call __libdwfl_reset_sh_addr here, should we? */ ++ mod->aux_sym.elf = elf_memory (buffer, size); ++ if (mod->aux_sym.elf == NULL) ++ free (buffer); ++@@ -1423,6 +1425,7 @@ find_dw (Dwfl_Module *mod) ++ switch (mod->dwerr) ++ { ++ case DWFL_E_NOERROR: +++ /* main.elf already should have had __libdwfl_reset_sh_addr called. */ ++ mod->debug.elf = mod->main.elf; ++ mod->debug.address_sync = mod->main.address_sync; ++ ++diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c ++index a76d36816c6f..7173375127a8 100644 ++--- a/libdwfl/dwfl_report_elf.c +++++ b/libdwfl/dwfl_report_elf.c ++@@ -268,6 +268,9 @@ __libdwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name, ++ /* Preinstall the open ELF handle for the module. */ ++ if (m->main.elf == NULL) ++ { +++ /* We assume all calls to __libdwfl_report_elf got their Elf +++ through __libdw_open_file which already called +++ __libdwfl_reset_sh_addr. */ ++ m->main.elf = elf; ++ m->main.vaddr = vaddr; ++ m->main.address_sync = address_sync; ++diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c ++index f2f866c2c70f..5ad318c78b09 100644 ++--- a/libdwfl/dwfl_segment_report_module.c +++++ b/libdwfl/dwfl_segment_report_module.c ++@@ -1072,6 +1072,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, ++ elf->flags |= ELF_F_MALLOCED; ++ } ++ +++ /* Elf comes through a core file, so cannot be an ET_REL. Don't call +++ __libdwfl_reset_sh_addr. */ ++ if (elf != NULL && mod->main.elf == NULL) ++ { ++ /* Install the file in the module. */ ++diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h ++index 6e394c262010..7a181029c529 100644 ++--- a/libdwfl/libdwflP.h +++++ b/libdwfl/libdwflP.h ++@@ -482,6 +482,10 @@ extern void __libdwfl_module_free (Dwfl_Module *mod) internal_function; ++ /* Find the main ELF file, update MOD->elferr and/or MOD->main.elf. */ ++ extern void __libdwfl_getelf (Dwfl_Module *mod) internal_function; ++ +++/* Reset all sh_addr fields to zero for SHF_ALLOC sections if the Elf +++ handle is an ET_REL. Called from libdw_open_elf. */ +++extern void __libdwfl_reset_sh_addr (Elf *elf) internal_function; +++ ++ /* Process relocations in debugging sections in an ET_REL file. ++ FILE must be opened with ELF_C_READ_MMAP_PRIVATE or ELF_C_READ, ++ to make it possible to relocate the data in place (or ELF_C_RDWR or ++diff --git a/libdwfl/open.c b/libdwfl/open.c ++index e66595fba097..86a3540f2af3 100644 ++--- a/libdwfl/open.c +++++ b/libdwfl/open.c ++@@ -190,6 +190,8 @@ libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok, ++ *fdp = -1; ++ } ++ +++ __libdwfl_reset_sh_addr (elf); +++ ++ *elfp = elf; ++ return error; ++ } ++diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c ++index 0497bd4fe1f3..dc9f45e64f3f 100644 ++--- a/libdwfl/relocate.c +++++ b/libdwfl/relocate.c ++@@ -1,5 +1,6 @@ ++ /* Relocate debug information. ++ Copyright (C) 2005-2011, 2014, 2016, 2018 Red Hat, Inc. +++ Copyright (C) 2026 Mark J. Wielaard ++ This file is part of elfutils. ++ ++ This file is free software; you can redistribute it and/or modify ++@@ -37,6 +38,37 @@ ++ ++ typedef uint8_t GElf_Byte; ++ +++/* Reset all sh_addr fields to zero for SHF_ALLOC sections if the Elf +++ handle is an ET_REL. Called from libdw_open_elf. */ +++ +++void +++internal_function +++__libdwfl_reset_sh_addr (Elf *elf) +++{ +++ if (elf == NULL || elf->kind != ELF_K_ELF) +++ return; +++ +++ GElf_Ehdr ehdr_mem; +++ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); +++ if (ehdr == NULL || ehdr->e_type != ET_REL) +++ return; +++ +++ Elf_Scn *scn = NULL; +++ while ((scn = elf_nextscn (elf, scn)) != NULL) +++ { +++ GElf_Shdr shdr_mem; +++ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); +++ if (shdr != NULL) +++ { +++ if ((shdr->sh_flags & SHF_ALLOC) != 0 && shdr->sh_addr != 0) +++ { +++ shdr_mem.sh_addr = 0; +++ gelf_update_shdr (scn, &shdr_mem); +++ } +++ } +++ } +++} +++ ++ /* Adjust *VALUE to add the load address of the SHNDX section. ++ We update the section header in place to cache the result. */ ++ ++-- ++2.53.0 ++ diff --cc debian/patches/hppa_backend.diff index 0000000,0000000..658c4b2 new file mode 100644 --- /dev/null +++ b/debian/patches/hppa_backend.diff @@@ -1,0 -1,0 +1,778 @@@ ++--- /dev/null +++++ b/backends/parisc_init.c ++@@ -0,0 +1,73 @@ +++/* Initialization of PA-RISC specific backend library. +++ Copyright (C) 2002, 2005, 2006 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ Written by Ulrich Drepper , 2002. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#define BACKEND parisc_ +++#define RELOC_PREFIX R_PARISC_ +++#include "libebl_CPU.h" +++#include "libebl_parisc.h" +++ +++/* This defines the common reloc hooks based on parisc_reloc.def. */ +++#include "common-reloc.c" +++ +++ +++const char * +++parisc_init (Elf *elf __attribute__ ((unused)), +++ GElf_Half machine __attribute__ ((unused)), +++ Ebl *eh, +++ size_t ehlen) +++{ +++ int pa64 = 0; +++ +++ /* Check whether the Elf_BH object has a sufficent size. */ +++ if (ehlen < sizeof (Ebl)) +++ return NULL; +++ +++ if (elf) { +++ GElf_Ehdr ehdr_mem; +++ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); +++ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE)) +++ pa64 = 1; +++ } +++ /* We handle it. */ +++ eh->name = "PA-RISC"; +++ parisc_init_reloc (eh); +++ HOOK (eh, reloc_simple_type); +++ HOOK (eh, machine_flag_check); +++ HOOK (eh, symbol_type_name); +++ HOOK (eh, segment_type_name); +++ HOOK (eh, section_type_name); +++ HOOK (eh, register_info); +++ if (pa64) +++ eh->return_value_location = parisc_return_value_location_64; +++ else +++ eh->return_value_location = parisc_return_value_location_32; +++ +++ return MODVERSION; +++} ++--- /dev/null +++++ b/backends/parisc_regs.c ++@@ -0,0 +1,159 @@ +++/* Register names and numbers for PA-RISC DWARF. +++ Copyright (C) 2005, 2006 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++ +++#define BACKEND parisc_ +++#include "libebl_CPU.h" +++ +++ssize_t +++parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen, +++ const char **prefix, const char **setname, +++ int *bits, int *type) +++{ +++ int pa64 = 0; +++ +++ if (ebl->elf) { +++ GElf_Ehdr ehdr_mem; +++ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); +++ if (ehdr->e_flags & EF_PARISC_WIDE) +++ pa64 = 1; +++ } +++ +++ int nregs = pa64 ? 127 : 128; +++ +++ if (name == NULL) +++ return nregs; +++ +++ if (regno < 0 || regno >= nregs || namelen < 6) +++ return -1; +++ +++ *prefix = "%"; +++ +++ if (regno < 32) +++ { +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ if (pa64) +++ { +++ *bits = 64; +++ } +++ else +++ { +++ *bits = 32; +++ } +++ } +++ else if (regno == 32) +++ { +++ *setname = "special"; +++ if (pa64) +++ { +++ *bits = 6; +++ } +++ else +++ { +++ *bits = 5; +++ } +++ *type = DW_ATE_unsigned; +++ } +++ else +++ { +++ *setname = "FPU"; +++ *type = DW_ATE_float; +++ if (pa64) +++ { +++ *bits = 64; +++ } +++ else +++ { +++ *bits = 32; +++ } +++ } +++ +++ if (regno < 33) { +++ switch (regno) +++ { +++ case 0 ... 9: +++ name[0] = 'r'; +++ name[1] = regno + '0'; +++ namelen = 2; +++ break; +++ case 10 ... 31: +++ name[0] = 'r'; +++ name[1] = regno / 10 + '0'; +++ name[2] = regno % 10 + '0'; +++ namelen = 3; +++ break; +++ case 32: +++ *prefix = NULL; +++ name[0] = 'S'; +++ name[1] = 'A'; +++ name[2] = 'R'; +++ namelen = 3; +++ break; +++ } +++ } +++ else { +++ if (pa64 && ((regno - 72) % 2)) { +++ *setname = NULL; +++ return 0; +++ } +++ +++ switch (regno) +++ { +++ case 72 + 0 ... 72 + 11: +++ name[0] = 'f'; +++ name[1] = 'r'; +++ name[2] = (regno + 8 - 72) / 2 + '0'; +++ namelen = 3; +++ if ((regno + 8 - 72) % 2) { +++ name[3] = 'R'; +++ namelen++; +++ } +++ break; +++ case 72 + 12 ... 72 + 55: +++ name[0] = 'f'; +++ name[1] = 'r'; +++ name[2] = (regno + 8 - 72) / 2 / 10 + '0'; +++ name[3] = (regno + 8 - 72) / 2 % 10 + '0'; +++ namelen = 4; +++ if ((regno + 8 - 72) % 2) { +++ name[4] = 'R'; +++ namelen++; +++ } +++ break; +++ default: +++ *setname = NULL; +++ return 0; +++ } +++ } +++ name[namelen++] = '\0'; +++ return namelen; +++} ++--- /dev/null +++++ b/backends/parisc_reloc.def ++@@ -0,0 +1,128 @@ +++/* List the relocation types for PA-RISC. -*- C -*- +++ Copyright (C) 2005 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++/* NAME, REL|EXEC|DYN */ +++ +++RELOC_TYPE (NONE, EXEC|DYN) +++RELOC_TYPE (DIR32, REL|EXEC|DYN) +++RELOC_TYPE (DIR21L, REL|EXEC|DYN) +++RELOC_TYPE (DIR17R, REL) +++RELOC_TYPE (DIR17F, REL) +++RELOC_TYPE (DIR14R, REL|DYN) +++RELOC_TYPE (PCREL32, REL) +++RELOC_TYPE (PCREL21L, REL) +++RELOC_TYPE (PCREL17R, REL) +++RELOC_TYPE (PCREL17F, REL) +++RELOC_TYPE (PCREL14R, REL|EXEC) +++RELOC_TYPE (DPREL21L, REL) +++RELOC_TYPE (DPREL14WR, REL) +++RELOC_TYPE (DPREL14DR, REL) +++RELOC_TYPE (DPREL14R, REL) +++RELOC_TYPE (GPREL21L, 0) +++RELOC_TYPE (GPREL14R, 0) +++RELOC_TYPE (LTOFF21L, REL) +++RELOC_TYPE (LTOFF14R, REL) +++RELOC_TYPE (DLTIND14F, 0) +++RELOC_TYPE (SETBASE, 0) +++RELOC_TYPE (SECREL32, REL) +++RELOC_TYPE (BASEREL21L, 0) +++RELOC_TYPE (BASEREL17R, 0) +++RELOC_TYPE (BASEREL14R, 0) +++RELOC_TYPE (SEGBASE, 0) +++RELOC_TYPE (SEGREL32, REL) +++RELOC_TYPE (PLTOFF21L, 0) +++RELOC_TYPE (PLTOFF14R, 0) +++RELOC_TYPE (PLTOFF14F, 0) +++RELOC_TYPE (LTOFF_FPTR32, 0) +++RELOC_TYPE (LTOFF_FPTR21L, 0) +++RELOC_TYPE (LTOFF_FPTR14R, 0) +++RELOC_TYPE (FPTR64, 0) +++RELOC_TYPE (PLABEL32, REL|DYN) +++RELOC_TYPE (PCREL64, 0) +++RELOC_TYPE (PCREL22C, 0) +++RELOC_TYPE (PCREL22F, 0) +++RELOC_TYPE (PCREL14WR, 0) +++RELOC_TYPE (PCREL14DR, 0) +++RELOC_TYPE (PCREL16F, 0) +++RELOC_TYPE (PCREL16WF, 0) +++RELOC_TYPE (PCREL16DF, 0) +++RELOC_TYPE (DIR64, REL|DYN) +++RELOC_TYPE (DIR14WR, REL) +++RELOC_TYPE (DIR14DR, REL) +++RELOC_TYPE (DIR16F, REL) +++RELOC_TYPE (DIR16WF, REL) +++RELOC_TYPE (DIR16DF, REL) +++RELOC_TYPE (GPREL64, 0) +++RELOC_TYPE (GPREL14WR, 0) +++RELOC_TYPE (GPREL14DR, 0) +++RELOC_TYPE (GPREL16F, 0) +++RELOC_TYPE (GPREL16WF, 0) +++RELOC_TYPE (GPREL16DF, 0) +++RELOC_TYPE (LTOFF64, 0) +++RELOC_TYPE (LTOFF14WR, 0) +++RELOC_TYPE (LTOFF14DR, 0) +++RELOC_TYPE (LTOFF16F, 0) +++RELOC_TYPE (LTOFF16WF, 0) +++RELOC_TYPE (LTOFF16DF, 0) +++RELOC_TYPE (SECREL64, 0) +++RELOC_TYPE (BASEREL14WR, 0) +++RELOC_TYPE (BASEREL14DR, 0) +++RELOC_TYPE (SEGREL64, 0) +++RELOC_TYPE (PLTOFF14WR, 0) +++RELOC_TYPE (PLTOFF14DR, 0) +++RELOC_TYPE (PLTOFF16F, 0) +++RELOC_TYPE (PLTOFF16WF, 0) +++RELOC_TYPE (PLTOFF16DF, 0) +++RELOC_TYPE (LTOFF_FPTR64, 0) +++RELOC_TYPE (LTOFF_FPTR14WR, 0) +++RELOC_TYPE (LTOFF_FPTR14DR, 0) +++RELOC_TYPE (LTOFF_FPTR16F, 0) +++RELOC_TYPE (LTOFF_FPTR16WF, 0) +++RELOC_TYPE (LTOFF_FPTR16DF, 0) +++RELOC_TYPE (COPY, EXEC) +++RELOC_TYPE (IPLT, EXEC|DYN) +++RELOC_TYPE (EPLT, 0) +++RELOC_TYPE (TPREL32, DYN) +++RELOC_TYPE (TPREL21L, 0) +++RELOC_TYPE (TPREL14R, 0) +++RELOC_TYPE (LTOFF_TP21L, 0) +++RELOC_TYPE (LTOFF_TP14R, 0) +++RELOC_TYPE (LTOFF_TP14F, 0) +++RELOC_TYPE (TPREL64, 0) +++RELOC_TYPE (TPREL14WR, 0) +++RELOC_TYPE (TPREL14DR, 0) +++RELOC_TYPE (TPREL16F, 0) +++RELOC_TYPE (TPREL16WF, 0) +++RELOC_TYPE (TPREL16DF, 0) +++RELOC_TYPE (LTOFF_TP64, 0) +++RELOC_TYPE (LTOFF_TP14WR, 0) +++RELOC_TYPE (LTOFF_TP14DR, 0) +++RELOC_TYPE (LTOFF_TP16F, 0) +++RELOC_TYPE (LTOFF_TP16WF, 0) +++RELOC_TYPE (LTOFF_TP16DF, 0) +++RELOC_TYPE (TLS_DTPMOD32, DYN) +++RELOC_TYPE (TLS_DTPMOD64, DYN) +++ +++#define NO_RELATIVE_RELOC 1 ++--- /dev/null +++++ b/backends/parisc_retval.c ++@@ -0,0 +1,213 @@ +++/* Function return value location for Linux/PA-RISC ABI. +++ Copyright (C) 2005 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++ +++#define BACKEND parisc_ +++#include "libebl_CPU.h" +++#include "libebl_parisc.h" +++ +++/* %r28, or pair %r28, %r29. */ +++static const Dwarf_Op loc_intreg32[] = +++ { +++ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 }, +++ }; +++ +++static const Dwarf_Op loc_intreg[] = +++ { +++ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 }, +++ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 }, +++ }; +++#define nloc_intreg 1 +++#define nloc_intregpair 4 +++ +++/* %fr4L, or pair %fr4L, %fr4R on pa-32 */ +++static const Dwarf_Op loc_fpreg32[] = +++ { +++ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 }, +++ }; +++#define nloc_fpreg32 2 +++#define nloc_fpregpair32 4 +++ +++/* $fr4 */ +++static const Dwarf_Op loc_fpreg[] = +++ { +++ { .atom = DW_OP_regx, .number = 72 }, +++ }; +++#define nloc_fpreg 1 +++ +++#if 0 +++/* The return value is a structure and is actually stored in stack space +++ passed in a hidden argument by the caller. Address of the location is stored +++ in %r28 before function call, but it may be changed by function. */ +++static const Dwarf_Op loc_aggregate[] = +++ { +++ { .atom = DW_OP_breg28 }, +++ }; +++#define nloc_aggregate 1 +++#endif +++ +++static int +++parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64) +++{ +++ Dwarf_Word regsize = pa64 ? 8 : 4; +++ +++ /* Start with the function's type, and get the DW_AT_type attribute, +++ which is the type of the return value. */ +++ +++ Dwarf_Attribute attr_mem; +++ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); +++ if (attr == NULL) +++ /* The function has no return value, like a `void' function in C. */ +++ return 0; +++ +++ Dwarf_Die die_mem; +++ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); +++ int tag = dwarf_tag (typedie); +++ +++ /* Follow typedefs and qualifiers to get to the actual type. */ +++ while (tag == DW_TAG_typedef +++ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type +++ || tag == DW_TAG_restrict_type) +++ { +++ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); +++ typedie = dwarf_formref_die (attr, &die_mem); +++ tag = dwarf_tag (typedie); +++ } +++ +++ switch (tag) +++ { +++ case -1: +++ return -1; +++ +++ case DW_TAG_subrange_type: +++ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) +++ { +++ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); +++ typedie = dwarf_formref_die (attr, &die_mem); +++ tag = dwarf_tag (typedie); +++ } +++ /* Fall through. */ +++ +++ case DW_TAG_base_type: +++ case DW_TAG_enumeration_type: +++ case DW_TAG_pointer_type: +++ case DW_TAG_ptr_to_member_type: +++ { +++ Dwarf_Word size; +++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, +++ &attr_mem), &size) != 0) +++ { +++ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) +++ size = 4; +++ else +++ return -1; +++ } +++ if (tag == DW_TAG_base_type) +++ { +++ Dwarf_Word encoding; +++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, +++ &attr_mem), &encoding) != 0) +++ return -1; +++ +++ if (encoding == DW_ATE_float) +++ { +++ if (pa64) { +++ *locp = loc_fpreg; +++ if (size <= 8) +++ return nloc_fpreg; +++ } +++ else { +++ *locp = loc_fpreg32; +++ if (size <= 4) +++ return nloc_fpreg32; +++ else if (size <= 8) +++ return nloc_fpregpair32; +++ } +++ goto aggregate; +++ } +++ } +++ if (pa64) +++ *locp = loc_intreg; +++ else +++ *locp = loc_intreg32; +++ if (size <= regsize) +++ return nloc_intreg; +++ if (size <= 2 * regsize) +++ return nloc_intregpair; +++ +++ /* Else fall through. */ +++ } +++ +++ case DW_TAG_structure_type: +++ case DW_TAG_class_type: +++ case DW_TAG_union_type: +++ case DW_TAG_array_type: +++ aggregate: { +++ Dwarf_Word size; +++ if (dwarf_aggregate_size (typedie, &size) != 0) +++ return -1; +++ if (pa64) +++ *locp = loc_intreg; +++ else +++ *locp = loc_intreg32; +++ if (size <= regsize) +++ return nloc_intreg; +++ if (size <= 2 * regsize) +++ return nloc_intregpair; +++#if 0 +++ /* there should be some way to know this location... But I do not see it. */ +++ *locp = loc_aggregate; +++ return nloc_aggregate; +++#endif +++ /* fall through. */ +++ } +++ } +++ +++ /* XXX We don't have a good way to return specific errors from ebl calls. +++ This value means we do not understand the type, but it is well-formed +++ DWARF and might be valid. */ +++ return -2; +++} +++ +++int +++parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++{ +++ return parisc_return_value_location_ (functypedie, locp, 0); +++} +++ +++int +++parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++{ +++ return parisc_return_value_location_ (functypedie, locp, 1); +++} +++ ++--- /dev/null +++++ b/backends/parisc_symbol.c ++@@ -0,0 +1,113 @@ +++/* PA-RISC specific symbolic name handling. +++ Copyright (C) 2002, 2005 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ Written by Ulrich Drepper , 2002. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++ +++#define BACKEND parisc_ +++#include "libebl_CPU.h" +++ +++const char * +++parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)), +++ size_t len __attribute__ ((unused))) +++{ +++ switch (segment) +++ { +++ case PT_PARISC_ARCHEXT: +++ return "PARISC_ARCHEXT"; +++ case PT_PARISC_UNWIND: +++ return "PARISC_UNWIND"; +++ default: +++ break; +++ } +++ return NULL; +++} +++ +++/* Return symbolic representation of symbol type. */ +++const char * +++parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)), +++ size_t len __attribute__ ((unused))) +++{ +++ if (symbol == STT_PARISC_MILLICODE) +++ return "PARISC_MILLI"; +++ return NULL; +++} +++ +++/* Return symbolic representation of section type. */ +++const char * +++parisc_section_type_name (int type, +++ char *buf __attribute__ ((unused)), +++ size_t len __attribute__ ((unused))) +++{ +++ switch (type) +++ { +++ case SHT_PARISC_EXT: +++ return "PARISC_EXT"; +++ case SHT_PARISC_UNWIND: +++ return "PARISC_UNWIND"; +++ case SHT_PARISC_DOC: +++ return "PARISC_DOC"; +++ } +++ +++ return NULL; +++} +++ +++/* Check whether machine flags are valid. */ +++bool +++parisc_machine_flag_check (GElf_Word flags) +++{ +++ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB | +++ EF_PARISC_WIDE | EF_PARISC_NO_KABP | +++ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH)) +++ return 0; +++ +++ GElf_Word arch = flags & EF_PARISC_ARCH; +++ +++ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) || +++ (arch == EFA_PARISC_2_0)); +++} +++ +++/* Check for the simple reloc types. */ +++Elf_Type +++parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, +++ int *addsub __attribute__ ((unused))) +++{ +++ switch (type) +++ { +++ case R_PARISC_DIR64: +++ case R_PARISC_SECREL64: +++ return ELF_T_XWORD; +++ case R_PARISC_DIR32: +++ case R_PARISC_SECREL32: +++ return ELF_T_WORD; +++ default: +++ return ELF_T_NUM; +++ } +++} ++--- /dev/null +++++ b/backends/libebl_parisc.h ++@@ -0,0 +1,9 @@ +++#ifndef _LIBEBL_HPPA_H +++#define _LIBEBL_HPPA_H 1 +++ +++#include +++ +++extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp); +++extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp); +++ +++#endif ++--- a/backends/Makefile.am +++++ b/backends/Makefile.am ++@@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I ++ noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a ++ ++ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ ++- tilegx m68k bpf riscv csky +++ tilegx m68k bpf riscv csky parisc ++ ++ i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ ++ i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ ++@@ -49,6 +49,9 @@ x86_64_SRCS = x86_64_init.c x86_64_symbo ++ x86_64_retval.c x86_64_regs.c x86_64_syscall.c x86_64_initreg.c \ ++ x86_64_unwind.c x32_corenote.c ++ +++parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c +++libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) +++am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) ++ ++ ia64_SRCS = ia64_init.c ia64_symbol.c ia64_regs.c ia64_retval.c ++ ++--- a/libelf/elf.h +++++ b/libelf/elf.h ++@@ -2182,16 +2182,24 @@ enum ++ #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ ++ #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ ++ #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ +++#define R_PARISC_DPREL14WR 19 +++#define R_PARISC_DPREL14DR 20 ++ #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ ++ #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ ++ #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ ++ #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ ++ #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ +++#define R_PARISC_DLTIND14F 39 +++#define R_PARISC_SETBASE 40 ++ #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ +++#define R_PARISC_BASEREL21L 42 +++#define R_PARISC_BASEREL17R 43 +++#define R_PARISC_BASEREL14R 46 ++ #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ ++ #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ ++ #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ ++ #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ +++#define R_PARISC_PLTOFF14F 55 ++ #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ ++ #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ ++ #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ ++@@ -2200,6 +2208,7 @@ enum ++ #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ ++ #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ ++ #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ +++#define R_PARISC_PCREL22C 73 ++ #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ ++ #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ ++ #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ ++@@ -2225,6 +2234,8 @@ enum ++ #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ ++ #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ ++ #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ +++#define R_PARISC_BASEREL14WR 107 +++#define R_PARISC_BASEREL14DR 108 ++ #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ ++ #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ ++ #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ diff --cc debian/patches/hurd-hacks.diff index 0000000,0000000..5251088 new file mode 100644 --- /dev/null +++ b/debian/patches/hurd-hacks.diff @@@ -1,0 -1,0 +1,58 @@@ ++--- a/debuginfod/debuginfod-client.c +++++ b/debuginfod/debuginfod-client.c ++@@ -58,6 +58,10 @@ ++ typedef enum {ignore, enforcing, undefined} ima_policy_t; ++ ++ +++#ifndef PATH_MAX +++#define PATH_MAX 1024 +++#endif +++ ++ /* We might be building a bootstrap dummy library, which is really simple. */ ++ #ifdef DUMMY_LIBDEBUGINFOD ++ ++--- a/debuginfod/debuginfod.cxx +++++ b/debuginfod/debuginfod.cxx ++@@ -58,7 +58,6 @@ extern "C" { ++ #include "debuginfod.h" ++ #include ++ ++-#include ++ #ifdef __GNUC__ ++ #undef __attribute__ /* glibc bug - rhbz 1763325 */ ++ #endif ++@@ -150,6 +149,8 @@ using namespace std; ++ #define tid() pthread_self() ++ #endif ++ +++#include +++ ++ extern "C" { ++ #include "printversion.h" ++ #include "system.h" ++@@ -769,10 +770,10 @@ parse_opt (int key, char *arg, ++ addr_info = arg; ++ break; ++ // case 'h': argp_state_help (state, stderr, ARGP_HELP_LONG|ARGP_HELP_EXIT_OK); ++- default: return ARGP_ERR_UNKNOWN; +++ default: return (error_t) ARGP_ERR_UNKNOWN; ++ } ++ ++- return 0; +++ return (error_t)0; ++ } ++ ++ ++--- a/tests/backtrace.c +++++ b/tests/backtrace.c ++@@ -40,6 +40,10 @@ ++ #endif ++ #include "system.h" ++ +++#ifndef PATH_MAX +++#define PATH_MAX 1024 +++#endif +++ ++ #ifndef __linux__ ++ ++ int diff --cc debian/patches/hurd_path.patch index 0000000,0000000..4440e39 new file mode 100644 --- /dev/null +++ b/debian/patches/hurd_path.patch @@@ -1,0 -1,0 +1,14 @@@ ++Index: elfutils-0.165/tests/run-native-test.sh ++=================================================================== ++--- elfutils-0.165.orig/tests/run-native-test.sh +++++ elfutils-0.165/tests/run-native-test.sh ++@@ -83,6 +83,9 @@ native_test() ++ # "cannot attach to process: Function not implemented". ++ [ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 ++ +++# hurd's /proc/$PID/maps does not give paths yet. +++[ "$(uname)" = "GNU" ] && exit 77 +++ ++ native_test ${abs_builddir}/allregs ++ native_test ${abs_builddir}/funcretval ++ diff --cc debian/patches/ignore_strmerge.diff index 0000000,0000000..1e6d7a2 new file mode 100644 --- /dev/null +++ b/debian/patches/ignore_strmerge.diff @@@ -1,0 -1,0 +1,11 @@@ ++--- elfutils-0.165.orig/tests/run-strip-strmerge.sh +++++ elfutils-0.165/tests/run-strip-strmerge.sh ++@@ -30,7 +30,7 @@ remerged=remerged.elf ++ tempfiles $merged $stripped $debugfile $remerged ++ ++ echo elflint $input ++-testrun ${abs_top_builddir}/src/elflint --gnu $input +++testrun_on_self_skip ${abs_top_builddir}/src/elflint --gnu $input ++ echo elfstrmerge ++ testrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input ++ echo elflint $merged diff --cc debian/patches/kfreebsd-debuginfod index 0000000,0000000..09f29e4 new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd-debuginfod @@@ -1,0 -1,0 +1,23 @@@ ++--- a/debuginfod/debuginfod-client.c +++++ b/debuginfod/debuginfod-client.c ++@@ -97,7 +97,9 @@ void debuginfod_end (debuginfod_client * ++ #include ++ #include ++ #include +++#ifdef __linux__ ++ #include +++#endif ++ #include ++ #include ++ #include ++@@ -156,6 +158,10 @@ struct public_key_entry ++ #endif ++ ++ +++#ifndef ETIME +++#define ETIME ETIMEDOUT /* Timer expired, fallback if not found in errno.h like on Linux */ +++#endif +++ ++ struct debuginfod_client ++ { ++ /* Progress/interrupt callback function. */ diff --cc debian/patches/kfreebsd-mremap-stub index 0000000,0000000..9c3e217 new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd-mremap-stub @@@ -1,0 -1,0 +1,19 @@@ ++Index: elfutils-0.188/libelf/elf_update.c ++=================================================================== ++--- elfutils-0.188.orig/libelf/elf_update.c 2022-11-13 15:20:31.189166291 -0500 +++++ elfutils-0.188/libelf/elf_update.c 2022-11-13 15:20:31.189166291 -0500 ++@@ -37,6 +37,14 @@ ++ ++ #include "libelfP.h" ++ +++#if defined(__FreeBSD_kernel__) || defined(__gnu_hurd__) +++void *mremap(void *old_address, size_t old_size, +++ size_t new_size, int flags, ... /* void *new_address */) +++{ +++ errno = ENOMEM; +++ return MAP_FAILED; +++} +++#endif ++ ++ static int64_t ++ write_file (Elf *elf, int64_t size, int change_bo, size_t shnum) diff --cc debian/patches/kfreebsd_path.patch index 0000000,0000000..9a19b58 new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd_path.patch @@@ -1,0 -1,0 +1,17 @@@ ++Index: b/tests/run-native-test.sh ++=================================================================== ++--- a/tests/run-native-test.sh +++++ b/tests/run-native-test.sh ++@@ -77,6 +77,12 @@ native_test() ++ test $native -eq 0 || testrun "$@" -p $native > /dev/null ++ } ++ +++# On the Debian buildds, GNU/kFreeBSD linprocfs /proc/$PID/maps does +++# not give absolute paths due to sbuild's bind mounts (bug #570805) +++# therefore the next two test programs are expected to fail with +++# "cannot attach to process: Function not implemented". +++[ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 +++ ++ native_test ${abs_builddir}/allregs ++ native_test ${abs_builddir}/funcretval ++ diff --cc debian/patches/mips_backend.diff index 0000000,0000000..29b72c4 new file mode 100644 --- /dev/null +++ b/debian/patches/mips_backend.diff @@@ -1,0 -1,0 +1,685 @@@ ++Index: elfutils-0.175/backends/mips_init.c ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_init.c ++@@ -0,0 +1,59 @@ +++/* Initialization of mips specific backend library. +++ Copyright (C) 2006 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#define BACKEND mips_ +++#define RELOC_PREFIX R_MIPS_ +++#include "libebl_CPU.h" +++ +++/* This defines the common reloc hooks based on mips_reloc.def. */ +++#include "common-reloc.c" +++ +++const char * +++mips_init (Elf *elf __attribute__ ((unused)), +++ GElf_Half machine __attribute__ ((unused)), +++ Ebl *eh, +++ size_t ehlen) +++{ +++ /* Check whether the Elf_BH object has a sufficent size. */ +++ if (ehlen < sizeof (Ebl)) +++ return NULL; +++ +++ /* We handle it. */ +++ if (machine == EM_MIPS) +++ eh->name = "MIPS R3000 big-endian"; +++ else if (machine == EM_MIPS_RS3_LE) +++ eh->name = "MIPS R3000 little-endian"; +++ +++ mips_init_reloc (eh); +++ HOOK (eh, reloc_simple_type); +++ HOOK (eh, return_value_location); +++ HOOK (eh, register_info); +++ +++ return MODVERSION; +++} ++Index: elfutils-0.175/backends/mips_regs.c ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_regs.c ++@@ -0,0 +1,104 @@ +++/* Register names and numbers for MIPS DWARF. +++ Copyright (C) 2006 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++ +++#define BACKEND mips_ +++#include "libebl_CPU.h" +++ +++ssize_t +++mips_register_info (Ebl *ebl __attribute__((unused)), +++ int regno, char *name, size_t namelen, +++ const char **prefix, const char **setname, +++ int *bits, int *type) +++{ +++ if (name == NULL) +++ return 66; +++ +++ if (regno < 0 || regno > 65 || namelen < 4) +++ return -1; +++ +++ *prefix = "$"; +++ +++ if (regno < 32) +++ { +++ *setname = "integer"; +++ *type = DW_ATE_signed; +++ *bits = 32; +++ if (regno < 32 + 10) +++ { +++ name[0] = regno + '0'; +++ namelen = 1; +++ } +++ else +++ { +++ name[0] = (regno / 10) + '0'; +++ name[1] = (regno % 10) + '0'; +++ namelen = 2; +++ } +++ } +++ else if (regno < 64) +++ { +++ *setname = "FPU"; +++ *type = DW_ATE_float; +++ *bits = 32; +++ name[0] = 'f'; +++ if (regno < 32 + 10) +++ { +++ name[1] = (regno - 32) + '0'; +++ namelen = 2; +++ } +++ else +++ { +++ name[1] = (regno - 32) / 10 + '0'; +++ name[2] = (regno - 32) % 10 + '0'; +++ namelen = 3; +++ } +++ } +++ else if (regno == 64) +++ { +++ *type = DW_ATE_signed; +++ *bits = 32; +++ name[0] = 'h'; +++ name[1] = 'i'; +++ namelen = 2; +++ } +++ else +++ { +++ *type = DW_ATE_signed; +++ *bits = 32; +++ name[0] = 'l'; +++ name[1] = 'o'; +++ namelen = 2; +++ } +++ +++ name[namelen++] = '\0'; +++ return namelen; +++} ++Index: elfutils-0.175/backends/mips_reloc.def ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_reloc.def ++@@ -0,0 +1,79 @@ +++/* List the relocation types for mips. -*- C -*- +++ Copyright (C) 2006 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++/* NAME, REL|EXEC|DYN */ +++ +++RELOC_TYPE (NONE, 0) +++RELOC_TYPE (16, 0) +++RELOC_TYPE (32, 0) +++RELOC_TYPE (REL32, 0) +++RELOC_TYPE (26, 0) +++RELOC_TYPE (HI16, 0) +++RELOC_TYPE (LO16, 0) +++RELOC_TYPE (GPREL16, 0) +++RELOC_TYPE (LITERAL, 0) +++RELOC_TYPE (GOT16, 0) +++RELOC_TYPE (PC16, 0) +++RELOC_TYPE (CALL16, 0) +++RELOC_TYPE (GPREL32, 0) +++ +++RELOC_TYPE (SHIFT5, 0) +++RELOC_TYPE (SHIFT6, 0) +++RELOC_TYPE (64, 0) +++RELOC_TYPE (GOT_DISP, 0) +++RELOC_TYPE (GOT_PAGE, 0) +++RELOC_TYPE (GOT_OFST, 0) +++RELOC_TYPE (GOT_HI16, 0) +++RELOC_TYPE (GOT_LO16, 0) +++RELOC_TYPE (SUB, 0) +++RELOC_TYPE (INSERT_A, 0) +++RELOC_TYPE (INSERT_B, 0) +++RELOC_TYPE (DELETE, 0) +++RELOC_TYPE (HIGHER, 0) +++RELOC_TYPE (HIGHEST, 0) +++RELOC_TYPE (CALL_HI16, 0) +++RELOC_TYPE (CALL_LO16, 0) +++RELOC_TYPE (SCN_DISP, 0) +++RELOC_TYPE (REL16, 0) +++RELOC_TYPE (ADD_IMMEDIATE, 0) +++RELOC_TYPE (PJUMP, 0) +++RELOC_TYPE (RELGOT, 0) +++RELOC_TYPE (JALR, 0) +++RELOC_TYPE (TLS_DTPMOD32, 0) +++RELOC_TYPE (TLS_DTPREL32, 0) +++RELOC_TYPE (TLS_DTPMOD64, 0) +++RELOC_TYPE (TLS_DTPREL64, 0) +++RELOC_TYPE (TLS_GD, 0) +++RELOC_TYPE (TLS_LDM, 0) +++RELOC_TYPE (TLS_DTPREL_HI16, 0) +++RELOC_TYPE (TLS_DTPREL_LO16, 0) +++RELOC_TYPE (TLS_GOTTPREL, 0) +++RELOC_TYPE (TLS_TPREL32, 0) +++RELOC_TYPE (TLS_TPREL64, 0) +++RELOC_TYPE (TLS_TPREL_HI16, 0) +++RELOC_TYPE (TLS_TPREL_LO16, 0) +++ +++#define NO_COPY_RELOC 1 +++#define NO_RELATIVE_RELOC 1 ++Index: elfutils-0.175/backends/mips_retval.c ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_retval.c ++@@ -0,0 +1,321 @@ +++/* Function return value location for Linux/mips ABI. +++ Copyright (C) 2005 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++#include +++#include +++ +++#include "../libebl/libeblP.h" +++#include "../libdw/libdwP.h" +++ +++#define BACKEND mips_ +++#include "libebl_CPU.h" +++ +++/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ +++#define EF_MIPS_ABI 0x0000F000 +++ +++/* The original o32 abi. */ +++#define E_MIPS_ABI_O32 0x00001000 +++ +++/* O32 extended to work on 64 bit architectures */ +++#define E_MIPS_ABI_O64 0x00002000 +++ +++/* EABI in 32 bit mode */ +++#define E_MIPS_ABI_EABI32 0x00003000 +++ +++/* EABI in 64 bit mode */ +++#define E_MIPS_ABI_EABI64 0x00004000 +++ +++/* All the possible MIPS ABIs. */ +++enum mips_abi +++ { +++ MIPS_ABI_UNKNOWN = 0, +++ MIPS_ABI_N32, +++ MIPS_ABI_O32, +++ MIPS_ABI_N64, +++ MIPS_ABI_O64, +++ MIPS_ABI_EABI32, +++ MIPS_ABI_EABI64, +++ MIPS_ABI_LAST +++ }; +++ +++/* Find the mips ABI of the current file */ +++enum mips_abi find_mips_abi(Elf *elf) +++{ +++ GElf_Ehdr ehdr_mem; +++ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); +++ +++ if (ehdr == NULL) +++ return MIPS_ABI_LAST; +++ +++ GElf_Word elf_flags = ehdr->e_flags; +++ +++ /* Check elf_flags to see if it specifies the ABI being used. */ +++ switch ((elf_flags & EF_MIPS_ABI)) +++ { +++ case E_MIPS_ABI_O32: +++ return MIPS_ABI_O32; +++ case E_MIPS_ABI_O64: +++ return MIPS_ABI_O64; +++ case E_MIPS_ABI_EABI32: +++ return MIPS_ABI_EABI32; +++ case E_MIPS_ABI_EABI64: +++ return MIPS_ABI_EABI64; +++ default: +++ if ((elf_flags & EF_MIPS_ABI2)) +++ return MIPS_ABI_N32; +++ } +++ +++ /* GCC creates a pseudo-section whose name describes the ABI. */ +++ size_t shstrndx; +++ if (elf_getshdrstrndx (elf, &shstrndx) < 0) +++ return MIPS_ABI_LAST; +++ +++ const char *name; +++ Elf_Scn *scn = NULL; +++ while ((scn = elf_nextscn (elf, scn)) != NULL) +++ { +++ GElf_Shdr shdr_mem; +++ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); +++ if (shdr == NULL) +++ return MIPS_ABI_LAST; +++ +++ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: ""; +++ if (strncmp (name, ".mdebug.", 8) != 0) +++ continue; +++ +++ if (strcmp (name, ".mdebug.abi32") == 0) +++ return MIPS_ABI_O32; +++ else if (strcmp (name, ".mdebug.abiN32") == 0) +++ return MIPS_ABI_N32; +++ else if (strcmp (name, ".mdebug.abi64") == 0) +++ return MIPS_ABI_N64; +++ else if (strcmp (name, ".mdebug.abiO64") == 0) +++ return MIPS_ABI_O64; +++ else if (strcmp (name, ".mdebug.eabi32") == 0) +++ return MIPS_ABI_EABI32; +++ else if (strcmp (name, ".mdebug.eabi64") == 0) +++ return MIPS_ABI_EABI64; +++ else +++ return MIPS_ABI_UNKNOWN; +++ } +++ +++ return MIPS_ABI_UNKNOWN; +++} +++ +++unsigned int +++mips_abi_regsize (enum mips_abi abi) +++{ +++ switch (abi) +++ { +++ case MIPS_ABI_EABI32: +++ case MIPS_ABI_O32: +++ return 4; +++ case MIPS_ABI_N32: +++ case MIPS_ABI_N64: +++ case MIPS_ABI_O64: +++ case MIPS_ABI_EABI64: +++ return 8; +++ case MIPS_ABI_UNKNOWN: +++ case MIPS_ABI_LAST: +++ default: +++ return 0; +++ } +++} +++ +++ +++/* $v0 or pair $v0, $v1 */ +++static const Dwarf_Op loc_intreg_o32[] = +++ { +++ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 }, +++ }; +++ +++static const Dwarf_Op loc_intreg[] = +++ { +++ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 }, +++ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 }, +++ }; +++#define nloc_intreg 1 +++#define nloc_intregpair 4 +++ +++/* $f0 (float), or pair $f0, $f1 (double). +++ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */ +++static const Dwarf_Op loc_fpreg_o32[] = +++ { +++ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 }, +++ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 }, +++ }; +++ +++/* $f0, or pair $f0, $f2. */ +++static const Dwarf_Op loc_fpreg[] = +++ { +++ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 }, +++ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 }, +++ }; +++#define nloc_fpreg 1 +++#define nloc_fpregpair 4 +++#define nloc_fpregquad 8 +++ +++/* The return value is a structure and is actually stored in stack space +++ passed in a hidden argument by the caller. But, the compiler +++ helpfully returns the address of that space in $v0. */ +++static const Dwarf_Op loc_aggregate[] = +++ { +++ { .atom = DW_OP_breg2, .number = 0 } +++ }; +++#define nloc_aggregate 1 +++ +++int +++mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) +++{ +++ /* First find the ABI used by the elf object */ +++ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf); +++ +++ /* Something went seriously wrong while trying to figure out the ABI */ +++ if (abi == MIPS_ABI_LAST) +++ return -1; +++ +++ /* We couldn't identify the ABI, but the file seems valid */ +++ if (abi == MIPS_ABI_UNKNOWN) +++ return -2; +++ +++ /* Can't handle EABI variants */ +++ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64)) +++ return -2; +++ +++ unsigned int regsize = mips_abi_regsize (abi); +++ if (!regsize) +++ return -2; +++ +++ /* Start with the function's type, and get the DW_AT_type attribute, +++ which is the type of the return value. */ +++ +++ Dwarf_Attribute attr_mem; +++ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); +++ if (attr == NULL) +++ /* The function has no return value, like a `void' function in C. */ +++ return 0; +++ +++ Dwarf_Die die_mem; +++ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); +++ int tag = dwarf_tag (typedie); +++ +++ /* Follow typedefs and qualifiers to get to the actual type. */ +++ while (tag == DW_TAG_typedef +++ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type +++ || tag == DW_TAG_restrict_type) +++ { +++ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); +++ typedie = dwarf_formref_die (attr, &die_mem); +++ tag = dwarf_tag (typedie); +++ } +++ +++ switch (tag) +++ { +++ case -1: +++ return -1; +++ +++ case DW_TAG_subrange_type: +++ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) +++ { +++ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); +++ typedie = dwarf_formref_die (attr, &die_mem); +++ tag = dwarf_tag (typedie); +++ } +++ /* Fall through. */ +++ +++ case DW_TAG_base_type: +++ case DW_TAG_enumeration_type: +++ case DW_TAG_pointer_type: +++ case DW_TAG_ptr_to_member_type: +++ { +++ Dwarf_Word size; +++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, +++ &attr_mem), &size) != 0) +++ { +++ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) +++ size = regsize; +++ else +++ return -1; +++ } +++ if (tag == DW_TAG_base_type) +++ { +++ Dwarf_Word encoding; +++ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, +++ &attr_mem), &encoding) != 0) +++ return -1; +++ +++#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc)) +++ +++ if (encoding == DW_ATE_float) +++ { +++ *locp = ABI_LOC(loc_fpreg, regsize); +++ if (size <= regsize) +++ return nloc_fpreg; +++ +++ if (size <= 2*regsize) +++ return nloc_fpregpair; +++ +++ if (size <= 4*regsize && abi == MIPS_ABI_O32) +++ return nloc_fpregquad; +++ +++ goto aggregate; +++ } +++ } +++ *locp = ABI_LOC(loc_intreg, regsize); +++ if (size <= regsize) +++ return nloc_intreg; +++ if (size <= 2*regsize) +++ return nloc_intregpair; +++ +++ /* Else fall through. Shouldn't happen though (at least with gcc) */ +++ } +++ +++ case DW_TAG_structure_type: +++ case DW_TAG_class_type: +++ case DW_TAG_union_type: +++ case DW_TAG_array_type: +++ aggregate: +++ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ +++ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) +++ return -2; +++ +++ *locp = loc_aggregate; +++ return nloc_aggregate; +++ } +++ +++ /* XXX We don't have a good way to return specific errors from ebl calls. +++ This value means we do not understand the type, but it is well-formed +++ DWARF and might be valid. */ +++ return -2; +++} ++Index: elfutils-0.175/backends/mips_symbol.c ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_symbol.c ++@@ -0,0 +1,53 @@ +++/* MIPS specific symbolic name handling. +++ Copyright (C) 2002, 2003, 2005 Red Hat, Inc. +++ This file is part of Red Hat elfutils. +++ Written by Jakub Jelinek , 2002. +++ +++ Red Hat elfutils is free software; you can redistribute it and/or modify +++ it under the terms of the GNU General Public License as published by the +++ Free Software Foundation; version 2 of the License. +++ +++ Red Hat elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received a copy of the GNU General Public License along +++ with Red Hat elfutils; if not, write to the Free Software Foundation, +++ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. +++ +++ Red Hat elfutils is an included package of the Open Invention Network. +++ An included package of the Open Invention Network is a package for which +++ Open Invention Network licensees cross-license their patents. No patent +++ license is granted, either expressly or impliedly, by designation as an +++ included package. Should you wish to participate in the Open Invention +++ Network licensing program, please visit www.openinventionnetwork.com +++ . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++#include +++ +++#define BACKEND mips_ +++#include "libebl_CPU.h" +++ +++/* Check for the simple reloc types. */ +++Elf_Type +++mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, +++ int *addsub __attribute__ ((unused))) +++{ +++ switch (type) +++ { +++ case R_MIPS_16: +++ return ELF_T_HALF; +++ case R_MIPS_32: +++ return ELF_T_WORD; +++ case R_MIPS_64: +++ return ELF_T_XWORD; +++ default: +++ return ELF_T_NUM; +++ } +++} ++Index: elfutils-0.175/libebl/eblopenbackend.c ++=================================================================== ++--- elfutils-0.175.orig/libebl/eblopenbackend.c +++++ elfutils-0.175/libebl/eblopenbackend.c ++@@ -71,6 +71,8 @@ static const struct ++ { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, ++ { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, ++ { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 }, +++ { "mips", "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, +++ { "mips", "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, ++ ++ { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, ++ { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, ++Index: elfutils-0.175/backends/Makefile.am ++=================================================================== ++--- elfutils-0.175.orig/backends/Makefile.am +++++ elfutils-0.175/backends/Makefile.am ++@@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I ++ ++ ++ modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ ++- tilegx m68k bpf riscv parisc +++ tilegx m68k bpf riscv parisc mips ++ libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ ++ libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ ++ libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ ++ libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ ++ libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ ++- libebl_parisc_pic.a +++ libebl_parisc_pic.a libebl_mips_pic.a ++ noinst_LIBRARIES = $(libebl_pic) ++ noinst_DATA = $(libebl_pic:_pic.a=.so) ++ ++@@ -141,6 +141,10 @@ parisc_SRCS = parisc_init.c parisc_symbo ++ libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) ++ am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) ++ +++mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c +++libebl_mips_pic_a_SOURCES = $(mips_SRCS) +++am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) +++ ++ libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) ++ @rm -f $(@:.so=.map) ++ $(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \ diff --cc debian/patches/mips_cfi.patch index 0000000,0000000..8dada52 new file mode 100644 --- /dev/null +++ b/debian/patches/mips_cfi.patch @@@ -1,0 -1,0 +1,114 @@@ ++Description: Add MIPS ABI CFI callback ++Author: Kurt Roeckx ++Last-Update: 2018-12-30 ++ ++Index: elfutils-0.175/backends/Makefile.am ++=================================================================== ++--- elfutils-0.175.orig/backends/Makefile.am +++++ elfutils-0.175/backends/Makefile.am ++@@ -141,7 +141,7 @@ parisc_SRCS = parisc_init.c parisc_symbo ++ libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) ++ am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) ++ ++-mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c +++mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c ++ libebl_mips_pic_a_SOURCES = $(mips_SRCS) ++ am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) ++ ++Index: elfutils-0.175/backends/mips_cfi.c ++=================================================================== ++--- /dev/null +++++ elfutils-0.175/backends/mips_cfi.c ++@@ -0,0 +1,80 @@ +++/* MIPS ABI-specified defaults for DWARF CFI. +++ Copyright (C) 2018 Kurt Roeckx, Inc. +++ This file is part of elfutils. +++ +++ This file is free software; you can redistribute it and/or modify +++ it under the terms of either +++ +++ * the GNU Lesser General Public License as published by the Free +++ Software Foundation; either version 3 of the License, or (at +++ your option) any later version +++ +++ or +++ +++ * the GNU General Public License as published by the Free +++ Software Foundation; either version 2 of the License, or (at +++ your option) any later version +++ +++ or both in parallel, as here. +++ +++ elfutils is distributed in the hope that it will be useful, but +++ WITHOUT ANY WARRANTY; without even the implied warranty of +++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++ General Public License for more details. +++ +++ You should have received copies of the GNU General Public License and +++ the GNU Lesser General Public License along with this program. If +++ not, see . */ +++ +++#ifdef HAVE_CONFIG_H +++# include +++#endif +++ +++#include +++ +++#define BACKEND mips_ +++#include "libebl_CPU.h" +++ +++int +++mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) +++{ +++ static const uint8_t abi_cfi[] = +++ { +++ /* Call-saved regs. */ +++ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ +++ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ +++ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ +++ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ +++ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ +++ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ +++ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ +++ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ +++ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ +++ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ +++ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ +++ +++ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ +++ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ +++ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ +++ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ +++ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ +++ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ +++ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ +++ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ +++ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ +++ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ +++ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ +++ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ +++ +++ /* The CFA is the SP. */ +++ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), +++ }; +++ +++ abi_info->initial_instructions = abi_cfi; +++ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; +++ abi_info->data_alignment_factor = 4; +++ +++ abi_info->return_address_register = 31; /* $31 */ +++ +++ return 0; +++} ++Index: elfutils-0.175/backends/mips_init.c ++=================================================================== ++--- elfutils-0.175.orig/backends/mips_init.c +++++ elfutils-0.175/backends/mips_init.c ++@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unus ++ HOOK (eh, reloc_simple_type); ++ HOOK (eh, return_value_location); ++ HOOK (eh, register_info); +++ HOOK (eh, abi_cfi); ++ ++ return MODVERSION; ++ } diff --cc debian/patches/mips_readelf_w.patch index 0000000,0000000..c888037 new file mode 100644 --- /dev/null +++ b/debian/patches/mips_readelf_w.patch @@@ -1,0 -1,0 +1,22 @@@ ++From: Kurt Roeckx ++Subject: Make readelf -w output debug information on mips ++Bug-Debian: http://bugs.debian.org/662041 ++Forwarded: not-needed ++ ++Upstreams wants a change where this is handled by a hook that needs ++to be filled in by the backend for the arch. ++ ++Index: elfutils-0.175/src/readelf.c ++=================================================================== ++--- elfutils-0.175.orig/src/readelf.c +++++ elfutils-0.175/src/readelf.c ++@@ -11133,7 +11133,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl * ++ GElf_Shdr shdr_mem; ++ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); ++ ++- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS) +++ if (shdr != NULL && ( +++ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF))) ++ { ++ static const struct ++ { diff --cc debian/patches/perf_regs.diff index 0000000,0000000..7b7d3e8 new file mode 100644 --- /dev/null +++ b/debian/patches/perf_regs.diff @@@ -1,0 -1,0 +1,13 @@@ ++--- a/backends/libebl_PERF_FLAGS.h +++++ b/backends/libebl_PERF_FLAGS.h ++@@ -32,9 +32,8 @@ ++ #define _LIBEBL_PERF_FLAGS_H 1 ++ ++ #if defined(__linux__) +++#if defined(__linux__) && !defined(__alpha__) && !defined(__hppa__) && !defined(__m68k__) && !defined(__sh__) && !defined(__sparc__) ++ /* XXX Need to exclude __linux__ arches without perf_regs.h. */ ++-#if defined(__x86_64__) || defined(__i386__) ++-/* || defined(other_architecture)... */ ++ # include ++ #endif ++ #endif diff --cc debian/patches/pr33991.diff index 0000000,0000000..4ad3412 new file mode 100644 --- /dev/null +++ b/debian/patches/pr33991.diff @@@ -1,0 -1,0 +1,63 @@@ ++From b27adc5262e807f341ca0a4910ce04294144f79a Mon Sep 17 00:00:00 2001 ++From: Mark Wielaard ++Date: Tue, 24 Feb 2026 22:19:48 +0100 ++Subject: aarch64: Recognize SHT_AARCH64_ATTRIBUTES ++ ++Recognize SHT_AARCH64_ATTRIBUTES. This is enough to stop elflint ++complaining about unknown section types. But doesn't implement parsing ++the attributes. ++ ++ * backends/aarch64_symbol.c (aarch64_section_type_name): ++ New function. ++ * backends/aarch64_init.c (aarch64_init): Hook ++ section_type_name. ++ ++https://sourceware.org/bugzilla/show_bug.cgi?id=33923 ++ ++Signed-off-by: Mark Wielaard ++--- ++ backends/aarch64_init.c | 1 + ++ backends/aarch64_symbol.c | 18 ++++++++++++++++++ ++ 2 files changed, 19 insertions(+) ++ ++diff --git a/backends/aarch64_init.c b/backends/aarch64_init.c ++index bed92954..c61767d5 100644 ++--- a/backends/aarch64_init.c +++++ b/backends/aarch64_init.c ++@@ -54,6 +54,7 @@ aarch64_init (Elf *elf __attribute__ ((unused)), ++ HOOK (eh, dynamic_tag_check); ++ HOOK (eh, data_marker_symbol); ++ HOOK (eh, abi_cfi); +++ HOOK (eh, section_type_name); ++ ++ /* X0-X30 (31 regs) + SP + 1 Reserved + ELR, 30 Reserved regs (34-43) ++ + V0-V31 (32 regs, least significant 64 bits only) ++diff --git a/backends/aarch64_symbol.c b/backends/aarch64_symbol.c ++index 15e0805b..af9322fd 100644 ++--- a/backends/aarch64_symbol.c +++++ b/backends/aarch64_symbol.c ++@@ -134,3 +134,21 @@ aarch64_dynamic_tag_check (int64_t tag) ++ || tag == DT_AARCH64_PAC_PLT ++ || tag == DT_AARCH64_VARIANT_PCS); ++ } +++ +++/* Return symbolic representation of section type. */ +++const char * +++aarch64_section_type_name (int type, +++ char *buf __attribute__ ((unused)), +++ size_t len __attribute__ ((unused))) +++{ +++ switch (type) +++ { +++#ifndef SHT_AARCH64_ATTRIBUTES +++#define SHT_AARCH64_ATTRIBUTES 0x70000003 +++#endif +++ case SHT_AARCH64_ATTRIBUTES: +++ return "AARCH64_ATTRIBUTES"; +++ } +++ +++ return NULL; +++} ++-- ++cgit ++ diff --cc debian/patches/remove-old-glibc-hack.diff index 0000000,0000000..545a8e8 new file mode 100644 --- /dev/null +++ b/debian/patches/remove-old-glibc-hack.diff @@@ -1,0 -1,0 +1,17 @@@ ++--- elfutils-0.182.orig/tests/dwfl-proc-attach.c +++++ elfutils-0.182/tests/dwfl-proc-attach.c ++@@ -107,6 +107,7 @@ main (int argc __attribute__ ((unused)), ++ return (threads == 3) ? 0 : -1; ++ } ++ +++#if 0 ++ /* HACK. This is a simple workaround for a combination of old glibc ++ and valgrind. libdw will try to dlopen libdebuginfod this causes ++ some unsuppressable memory leak warnings when the process is ++@@ -118,5 +119,6 @@ void *dlopen (void) ++ { ++ return NULL; ++ } +++#endif ++ ++ #endif /* __linux__ */ diff --cc debian/patches/series index 0000000,0000000..af953fc new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,23 @@@ ++#hppa_backend.diff ++#arm_backend.diff ++#mips_backend.diff ++elfutils-0.194-alloc-jobs.patch ++elfutils-0.194-fix-const.patch ++elfutils-0.194-sh_addr-non-zero.patch ++testsuite-ignore-elflint.diff ++#mips_readelf_w.patch ++#kfreebsd_path.patch ++#0001-Ignore-differences-between-mips-machine-identifiers.patch ++#0002-Add-support-for-mips64-abis-in-mips_retval.c.patch ++#0003-Add-mips-n64-relocation-format-hack.patch ++#hurd_path.patch ++ignore_strmerge.diff ++disable_werror.patch ++#mips_cfi.patch ++#disable-some-tests.diff ++remove-old-glibc-hack.diff ++kfreebsd-debuginfod ++kfreebsd-mremap-stub ++hurd-hacks.diff ++perf_regs.diff ++pr33991.diff diff --cc debian/patches/testsuite-ignore-elflint.diff index 0000000,0000000..6a1ddcc new file mode 100644 --- /dev/null +++ b/debian/patches/testsuite-ignore-elflint.diff @@@ -1,0 -1,0 +1,36 @@@ ++On many architectures this test fails because binaries/libs produced by ++binutils don't pass elflint. However elfutils shouldn't FTBFS because of this. ++ ++So we run the tests on all archs to see what breaks, but if it breaks we ignore ++the result (exitcode 77 means: this test was skipped). ++ ++--- a/tests/run-elflint-self.sh +++++ b/tests/run-elflint-self.sh ++@@ -18,5 +18,5 @@ ++ ++ . $srcdir/test-subr.sh ++ ++-testrun_on_self ${abs_top_builddir}/src/elflint --quiet --gnu-ld +++testrun_on_self_skip ${abs_top_builddir}/src/elflint --quiet --gnu-ld ++ testrun_on_self_compressed ${abs_top_builddir}/src/elflint --quiet --gnu-ld ++--- a/tests/test-subr.sh +++++ b/tests/test-subr.sh ++@@ -212,3 +212,18 @@ testrun_on_self_quiet() ++ # Only exit if something failed ++ if test $exit_status != 0; then exit $exit_status; fi ++ } +++ +++# Same as testrun_on_self(), but skip on failure. +++testrun_on_self_skip() +++{ +++ exit_status=0 +++ +++ for file in $self_test_files; do +++ testrun $* $file \ +++ || { echo "*** failure in $* $file"; exit_status=77; } +++ done +++ +++ # Only exit if something failed +++ if test $exit_status != 0; then exit $exit_status; fi +++} +++ diff --cc debian/po/POTFILES.in index 0000000,0000000..2cb80c3 new file mode 100644 --- /dev/null +++ b/debian/po/POTFILES.in @@@ -1,0 -1,0 +1,1 @@@ ++[type: gettext/rfc822deb] libdebuginfod-common.templates diff --cc debian/po/de.po index 0000000,0000000..fbc5734 new file mode 100644 --- /dev/null +++ b/debian/po/de.po @@@ -1,0 -1,0 +1,45 @@@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the elfutils package. ++# Helge Kreutzmann , 2021. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils 0.185-2\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2021-09-26 11:11+0200\n" ++"Last-Translator: Helge Kreutzmann \n" ++"Language-Team: German \n" ++"Language: de\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Mit Debians debuginfod-Sever zum Herunterladen von Debug-Symbolen verbinden?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Bei der Fehlersuche in Programmen (mit beispielsweise GDB) oder dem Einsatz " ++"von debuginfo-consumer-Anwendungen ist es möglich, sich mit Debians " ++"debuginfod-Server zu verbinden und die notwendigen Fehlersuchinformationen " ++"für das Programm, dass sie untersuchen, direkt herunterzuladen, ohne das Apt-" ++"Depot debian-debug konfigurieren oder irgend ein dbgsym-Paket " ++"herunterzuladen zu müssen. Dieser Dienst wird von Debian bereitgestellt und " ++"die einzige Information, die sie dem Dienst senden müssen, ist der Hash der " ++"Build-ID der Programme/Bibliotheken, für die die Fehlersuche erfolgt." diff --cc debian/po/es.po index 0000000,0000000..642ce32 new file mode 100644 --- /dev/null +++ b/debian/po/es.po @@@ -1,0 -1,0 +1,44 @@@ ++# elfutils po-debconf translation to Spanish. ++# Copyright (C) 2021 ++# This file is distributed under the same license as the elfutils package. ++# Camaleón , 2022. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2022-01-06 20:03+0100\n" ++"Last-Translator: Camaleón \n" ++"Language-Team: Debian Spanish \n" ++"Language: es\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "¿Desea conectarse al servidor debuginfod de Debian para descargar " ++"los símbolos de depuración?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Cuando se depuran programas (p. ej., con GDB) o utiliza aplicaciones que " ++"usan debuginfo, puede conectarse al servidor debuginfod de Debian y " ++"descargar la información de depuración necesaria para la aplicación que " ++"está depurando sobre la marcha, sin necesidad de configurar el repositorio " ++"APT de debian-debug ni instalar paquetes dbgsym. Este servicio está mantenido " ++"por Debian y la única información que tendrá que enviarle es la huella " ++"digital «Build-ID» de los programas o bibliotecas depuradas." diff --cc debian/po/fr.po index 0000000,0000000..6ceebf7 new file mode 100644 --- /dev/null +++ b/debian/po/fr.po @@@ -1,0 -1,0 +1,49 @@@ ++# elfutils debconf templates French translation ++# Copyright (C) 2021 ++# This file is distributed under the same license as the elfutils package. ++# ++# Translators: ++# Jean-Pierre Giraud , 2021. ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2021-09-19 11:12+0100\n" ++"Last-Translator: Jean-Pierre Giraud \n" ++"Language-Team: French \n" ++"Language: fr_FR\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n > 1);\n" ++"X-Generator: Lokalize 2.0\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Faut-il se connecter au serveur debuginfod de Debian pour télécharger les " ++"symboles de débogage ?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Lors du débogage de programmes (avec GDB par exemple) ou de l'utilisation " ++"d'applications se servant de debuginfo, il est possible de se connecter au " ++"serveur debuginfod de Debian et de télécharger les informations de débogage " ++"nécessaires pour le programme que vous déboguez à la volée, sans avoir " ++"besoin de configurer le dépôt APT debian-debug ou d'installer un paquet " ++"dbgsym. Ce service est entretenu par Debian et la seule information que vous " ++"aurez à lui envoyer est l'empreinte numérique du « Build-ID » des " ++"programmes ou bibliothèques débogués." diff --cc debian/po/it.po index 0000000,0000000..dd8ef60 new file mode 100644 --- /dev/null +++ b/debian/po/it.po @@@ -1,0 -1,0 +1,45 @@@ ++# elfutils po-debconf italian translation. ++# Copyright (C) 2023 elfutils' copyright holder ++# This file is distributed under the same license as the elfutils package. ++# Ceppo , 2023. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2023-07-11 00:00+0000\n" ++"Last-Translator: Ceppo \n" ++"Language-Team: Italian \n" ++"Language: it\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Connettersi al server debuginfod di Debian per scaricare i simboli di debug?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Mentre si effettua il debug di programmi (con GDB, ad esempio) o si usano " ++"applicazioni che utilizzano debuginfo, è possibile connettersi al server " ++"debuginfod di Debian e scaricare al momento le informazioni di debug per il " ++"programma di cui si sta effettuando il debug, senza bisogno di configurare " ++"il repository apt debian-debug né di installare alcun pacchetto dbgsym. " ++"Questo servizio è mantenuto da Debian e l'unica informazione che sarà " ++"necessario inviare è l'hash del Build-ID del programma/libreria di cui si " ++"sta effettuando il debug." diff --cc debian/po/nl.po index 0000000,0000000..d0c172c new file mode 100644 --- /dev/null +++ b/debian/po/nl.po @@@ -1,0 -1,0 +1,49 @@@ ++# Dutch translation of elfutils debconf templates. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the elfutils package. ++# FIRST AUTHOR , YEAR. ++# Frans Spiesschaert , 2021. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils_0.185-2\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2021-08-18 21:59+0200\n" ++"Last-Translator: Frans Spiesschaert \n" ++"Language-Team: Debian Dutch l10n Team \n" ++"Language: nl\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Poedit 2.2.1\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Verbinding maken met de debuginfod-server van Debian om debug-symbolen te " ++"downloaden?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Tijdens het debuggen van programma's (bijvoorbeeld met GDB) of het gebruik " ++"van debuginfo-consumer-applicaties is het mogelijk om verbinding te maken " ++"met de debuginfod-server van Debian en de nodige debug-informatie te " ++"downloaden voor het programma dat u aan het debuggen bent, zonder dat het " ++"nodig is om de apt-bron debian-debug te configureren of dbgsym-pakketten te " ++"installeren. Deze service wordt onderhouden door Debian, en de enige " ++"informatie die u ernaar hoeft te sturen, is de Build-ID-hash van de " ++"programma('s)/bibliotheek(en) die u wilt debuggen." diff --cc debian/po/pt.po index 0000000,0000000..3a936b3 new file mode 100644 --- /dev/null +++ b/debian/po/pt.po @@@ -1,0 -1,0 +1,47 @@@ ++# Translation of elfutils debconf messages to European Portuguese ++# Copyright (C) YEAR THE elfutils'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the elfutils package. ++# ++# Américo Monteiro , 2021. ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils 0.186-1\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2021-12-18 22:26+0000\n" ++"Last-Translator: Américo Monteiro \n" ++"Language-Team: Portuguese <>\n" ++"Language: pt\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Lokalize 20.12.0\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Ligar ao servidor debuginfod de Debian para descarregar símbolos de depuração?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Quando se depuram programas (com GDB, por exemplo) ou se usam aplicações " ++"debuginfo-consumer, é possível ligar ao servidor debuginfod de Debian e " ++"descarregar na hora a informação de depuração necessária para o programa que" ++" você " ++"está a depurar, sem a necessidade de configurar o repositório apt " ++"debian-debug nem instalar nenhuns pacotes dbgsym. Este serviço é mantido " ++"por Debian, e a única informação que você tem de enviar para ele é a cinza " ++"do Build-ID dos programa(s)/biblioteca(s) que vão ser depuradas." diff --cc debian/po/pt_BR.po index 0000000,0000000..01ec556 new file mode 100644 --- /dev/null +++ b/debian/po/pt_BR.po @@@ -1,0 -1,0 +1,44 @@@ ++# Debconf translation for elfutils. ++# Copyright (C) 2021 Sergio Durigan Junior ++# This file is distributed under the same license as the elfutils package. ++# Sergio Durigan Junior , 2021. ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2021-03-21 02:57-0400\n" ++"Last-Translator: Sergio Durigan Junior \n" ++"Language-Team: Brazilian Portuguese \n" ++"Language: pt_BR\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "Conectar-se ao servidor debuginfod do Debian para baixar símbolos de depuração?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"Enquanto você estiver depurando programas (com o GDB, por exemplo) ou " ++"utilizando algum outro aplicativo consumidor de informações de " ++"depuração, é possível conectar-se ao servidor debuginfod do Debian e " ++"baixar simultaneamente as informações de depuração necessárias para o " ++"programa sendo depurado, sem que seja necessário configurar o " ++"repositório debian-debug nem instalar quaisquer pacotes dbgsym. Este " ++"serviço é mantido pelo Debian, e a única informação que será enviada a " ++"ele é a assinatura Build-ID do(s) programa(s)/biblioteca(s) sendo " ++"depurado(s)." diff --cc debian/po/ro.po index 0000000,0000000..e33d16f new file mode 100644 --- /dev/null +++ b/debian/po/ro.po @@@ -1,0 -1,0 +1,57 @@@ ++# Mesajele în limba română pentru pachetul elfutils. ++# Romanian translation of elfutils. ++# Copyright © 2023 THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the elfutils package. ++# ++# Remus-Gabriel Chelu , 2023. ++# ++# Cronologia traducerii fișierului „elfutils”: ++# Traducerea inițială, făcută de R-GC, pentru versiunea elfutils 0.188-2.1(2021-03-06). ++# Actualizare a traducerii pentru versiunea Y, făcută de X, Y(anul). ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils 0.188-2.1\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2023-02-19 10:34+0100\n" ++"Last-Translator: Remus-Gabriel Chelu \n" ++"Language-Team: Romanian \n" ++"Language: ro\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==0 || (n!=1 && n%100>=1 && " ++"n%100<=19) ? 1 : 2);\n" ++"X-Bugs: Report translation errors to the Language-Team address.\n" ++"X-Generator: Poedit 3.2.2\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Doriți să vă conectați la serverul Debian „debuginfod” pentru a descărca " ++"simboluri de depanare?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging on-" ++"the-fly, without the need to configure the debian-debug apt repository nor " ++"installing any dbgsym packages. This service is maintained by Debian, and the " ++"only information you will have to send to it is the Build-ID hash of the " ++"program(s)/library(ies) being debugged." ++msgstr "" ++"În timp ce depanați programe (cu GDB, de exemplu) sau utilizați aplicații " ++"debuginfo-consumer, este posibil să vă conectați la serverul Debian " ++"„debuginfod” și să descărcați informațiile necesare de depanare pentru " ++"programul pe care îl depanați din mers, fără a fi nevoie să configurați " ++"depozitul apt „debian-debug” și nici să instalați niciun pachet „dbgsym”. " ++"Acest serviciu este întreținut de Debian și singura informație pe care va " ++"trebui să-i trimiteți este suma de control a identificatorului de compilare " ++"(Build-ID hash) al programului/bibliotecii care este depanată (sau ale " ++"programelor/bibliotecilor care sunt depanate)." diff --cc debian/po/sv.po index 0000000,0000000..3cf3ddb new file mode 100644 --- /dev/null +++ b/debian/po/sv.po @@@ -1,0 -1,0 +1,46 @@@ ++# Swedish translation of elfutils debconf messages. ++# Copyright (C) The elfutils package copyright holders. ++# This file is distributed under the same license as the elfutils package. ++# Peter Kvillegård , 2023. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils 0.189-4\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: 2023-08-14 21:31+0200\n" ++"Last-Translator: Peter Kvillegård \n" ++"Language-Team: Swedish \n" ++"Language: sv\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Poedit 3.2.2\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++"Anslut till Debians debuginfod-server för att ladda ner felsökningssymboler?" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" ++"När du felsöker program (med GDB till exempel) eller kör applikationer som " ++"använder debuginfo, är det möjligt att direkt ansluta till Debians " ++"debuginfod-server och ladda ner den felsökningsinformation som behövs för " ++"programmet som du felsöker. Du behöver inte konfigurera apt-förrådet för " ++"debian-debug eller installera några dbgsym-paket. Den här tjänsten " ++"underhålls av Debian, och den enda information som du behöver skicka är " ++"Build-ID-kondensat (hash) för det (eller de) program/bibliotek som felsöks." diff --cc debian/po/templates.pot index 0000000,0000000..638ffc3 new file mode 100644 --- /dev/null +++ b/debian/po/templates.pot @@@ -1,0 -1,0 +1,37 @@@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the elfutils package. ++# FIRST AUTHOR , YEAR. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: elfutils\n" ++"Report-Msgid-Bugs-To: elfutils@packages.debian.org\n" ++"POT-Creation-Date: 2021-03-06 18:23-0500\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: FULL NAME \n" ++"Language-Team: LANGUAGE \n" ++"Language: \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=CHARSET\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "Connect to Debian's debuginfod server to download debug symbols?" ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../libdebuginfod-common.templates:1001 ++msgid "" ++"While debugging programs (with GDB, for example) or using debuginfo-consumer " ++"applications, it is possible to connect to Debian's debuginfod server and " ++"download the necessary debug information for the program you are debugging " ++"on-the-fly, without the need to configure the debian-debug apt repository " ++"nor installing any dbgsym packages. This service is maintained by Debian, " ++"and the only information you will have to send to it is the Build-ID hash of " ++"the program(s)/library(ies) being debugged." ++msgstr "" diff --cc debian/rules index 0000000,0000000..ec3cd6d new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,192 @@@ ++#!/usr/bin/make -f ++# -*- makefile -*- ++# Copyright 2006, Kurt Roeckx ++ ++# Based on the sample file from dh-make: ++# Sample debian/rules that uses debhelper. ++# This file was originally written by Joey Hess and Craig Small. ++# As a special exception, when this file is copied by dh-make into a ++# dh-make output file, you may use that output file without restriction. ++# This special exception was added by Craig Small in version 0.37 of dh-make. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++DISTRO = $(shell lsb_release -is) ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) ++ ++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) ++ confflags += --build=$(DEB_HOST_GNU_TYPE) --enable-maintainer-mode ++else ++ confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) ++endif ++ ++ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++ USE_JOBS = -j$(NUMJOBS) ++endif ++ ++DPKG_EXPORT_BUILDFLAGS = 1 ++include /usr/share/dpkg/buildflags.mk ++ ++# https://sourceware.org/pipermail/elfutils-devel/2020q2/002733.html ++ifneq (,$(findstring -flto, $(CFLAGS))) ++ CFLAGS += -flto-partition=none -Wno-error=stack-usage= ++ CXXFLAGS += -flto-partition=none ++ LDFLAGS += -Wno-error=stack-usage= ++endif ++CFLAGS := $(patsubst -O%,-O3, $(CFLAGS)) ++CXXFLAGS := $(patsubst -O%,-O3, $(CXXFLAGS)) ++ ++# debuginfod configuration flags. ++ifneq (,$(filter pkg.elfutils.nodebuginfod,$(DEB_BUILD_PROFILES))) ++ conf_debuginfod = \ ++ --disable-libdebuginfod \ ++ --disable-debuginfod ++else ++ conf_debuginfod = \ ++ --enable-libdebuginfod \ ++ --enable-debuginfod ++ ++ ifeq ($(DISTRO),Debian) ++ conf_debuginfod += \ ++ --enable-debuginfod-urls="https://debuginfod.debian.net" ++ else ifeq ($(DISTRO),Ubuntu) ++ conf_debuginfod += \ ++ --enable-debuginfod-urls="https://debuginfod.ubuntu.com" ++ endif ++endif ++ ++ ++stamps/configure: ++ dh_testdir ++ dh_autoreconf ++ @mkdir -p stamps ++ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) ++ CFLAGS='$(CFLAGS_FOR_BUILD)' \ ++ CPPFLAGS='$(CPPFLAGS_FOR_BUILD)' \ ++ CXXFLAGS='$(CXXFLAGS_FOR_BUILD)' \ ++ LDFLAGS='$(LDFLAGS_FOR_BUILD)' \ ++ ./configure --enable-maintainer-mode \ ++ --enable-libdebuginfod=dummy \ ++ --disable-debuginfod ++ $(MAKE) $(USE_JOBS) ++ $(MAKE) clean ++endif ++ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ ++ ./configure $(confflags) --prefix=/usr \ ++ --sysconfdir=/etc \ ++ --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ ++ --program-prefix=eu- --disable-silent-rules \ ++ $(conf_debuginfod) ++ touch $@ ++ ++build: stamps/build ++stamps/build: stamps/configure ++ dh_testdir ++ ++ $(MAKE) $(USE_JOBS) ++ ++ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) ++ # Check that those files exist. ++ -ls -l /proc/$$$$/maps ++ -ls -l /proc/$$$$/auxv ++ -ls -l /proc/$$$$/ ++ -LC_CTYPE=C $(MAKE) check $(USE_JOBS) || { cat tests/test-suite.log; exit 1; } ++ cat tests/test-suite.log ++endif ++ ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -rf stamps ++ [ ! -f Makefile ] || $(MAKE) distclean ++ dh_autoreconf_clean ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_prep ++ dh_installdirs ++ ++ : # Add here commands to install the package into debian/tmp ++ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp ++ ++ : # We do not provide a libebl anymore, use libdw instead. ++ rm -f debian/tmp/usr/include/elfutils/libebl.h ++ ++ : # We don't install the systemd service file. ++ rm -f debian/tmp/usr/share/man/man8/debuginfod.service.8 ++ ++ : # Don't package fish. ++ rm -rf debian/tmp/usr/share/fish ++ ++ dh_install --sourcedir=debian/tmp ++ rm -f debian/elfutils/usr/bin/debuginfod* ++ dh_missing --fail-missing --sourcedir=debian/tmp ++ ++# Build architecture-independent files here. ++build-indep: build ++binary-indep: build-indep install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs -i ChangeLog ++ dh_installdocs -i ++ ++ dh_compress -i ++ dh_fixperms -i ++ dh_installdebconf -i ++ dh_installdeb -i ++ dh_gencontrol -i ++ dh_md5sums -i ++ dh_builddeb -i ++ ++# We have nothing to do. ++ ++# Build architecture-dependent files here. ++build-arch: build ++binary-arch: build-arch install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs -a ChangeLog ++ dh_installdocs -a ++ ++ : # FIXME: package those ... ++# find debian/tmp -name '*debuginfod*' | xargs -r rm -f ++# rm -f debian/tmp/usr/share/man/man1/eu-elfclassify.1 ++# rm -f debian/tmp/usr/share/man/man1/eu-readelf.1 ++# rm -f debian/tmp/usr/share/man/man3/elf_*.3 ++ ++ dh_dwz -a ++ dh_strip -a ++ dh_strip_nondeterminism -a ++ dh_compress -a ++ dh_fixperms -a ++ dpkg-gensymbols -Pdebian/libdw1t64/ -plibdw1t64 -c4 ++ dpkg-gensymbols -Pdebian/libasm1t64/ -plibasm1t64 -c4 ++ dpkg-gensymbols -Pdebian/libelf1t64/ -plibelf1t64 -c4 ++ dh_makeshlibs -plibelf1t64 -V "libelf1t64 (>= 0.132)" ++ dh_makeshlibs -plibasm1t64 -V "libasm1t64 (>= 0.132)" ++ dh_makeshlibs -plibdw1t64 -V "libdw1t64 (>= 0.138)" ++ dh_makeshlibs -plibdebuginfod1t64 ++ dh_installdebconf -a ++ dh_installdeb -a ++ dh_shlibdeps -a ++ dh_gencontrol -a ++ dh_md5sums -a ++ dh_builddeb -a ++ ++binary: binary-indep binary-arch ++ ++maint-unpatch: ++ bash debian/unpatch.sh debian/patches ++ ++.PHONY: build clean binary-indep binary-arch binary install maint-unpatch diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/upstream/signing-key.asc index 0000000,0000000..e8d750d new file mode 100644 --- /dev/null +++ b/debian/upstream/signing-key.asc @@@ -1,0 -1,0 +1,115 @@@ ++-----BEGIN PGP ARMORED FILE----- ++Comment: Use "gpg --dearmor" for unpacking ++ ++mQINBFxDPtIBEAC8xePaWvq5cDMBYtrpdmR20YX5xrDXUeHgueSVE9Mw8yCan2Cq ++1Ac1jHYnXxp4Jj3q4tIS9Jq2oAbqxyvBMdJYqEz4z709eDnYBacZQcGqojLh3HI2 ++P7lmmKxkL8rS3Q3Ug05mYT+MwgmRvIO1+kwQTcq1AeB9z9/zikgY1Jv1R86gH8G8 ++4OPbJUowdE/mT3pQ+2UQnarCVPJ3WJtZNDXPRzskk0t5h+Mg5RtX+COoHfsvWHiE ++UTmHMfynw49GG/YF6jLSVzMlKMz3jdOePIArpm2BNUu8DvEn9at6daKR4Ah+ujDd ++08l9j8wFhJnenn/9+ENjm9kOGQWOmH/fEIOlMAATVdZEfHVfAWbgICPSrPyi+v3A ++CE4uEoaw85LgbAAbhzdswlLezLxS7LLTpfDZUFZfkho1MSGXaCQ475/iVAeuxi61 ++B2VcmH4lOSH7HYNkMY8ggGk2/WG35eq8PZme8PvXUmLu+f2jzy9XFekIr+/Ks2Tc ++hCTYCw6bhSLPa19HapCxvWXgNcYzZ8jULqBXsAfj4NnzBTn6u5nsJ1reA8GoO9vL ++aQf3LDgr+UY/z+6N474lAVfr0eIdWzkWPvX8fcBCfiB944rPr+Q50RUfc9ngIKP4 ++JsflhXTn601aL4r6qkCcBVqO/eRhb4vCAUo7csemTKzI/05ooGfQtZ3O5QARAQAB ++tBtNYXJrIFdpZWxhYXJkIDxtandAZ251Lm9yZz6JAk4EEwEKADgWIQTsPP6I9soH ++iHdPXB0apEvmSd52CgUCXE36UwIbAQULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK ++CRAapEvmSd52CjVuEACsjuRF5irhi1rFLw/Fvkx0/GJBW29+RvJxYJnijDM94QiQ ++mpxtp01SIZKoJFHbF5PiS7MVlYguJl8FPAfAUz9tdEMr8U6fsXxqpQBXW2rZbvRn ++sFSlPCkC/tebli+x9tMFmaWUmW0SIisojNQsK1EopVeC04qDSx39bZpfDKX45f49 ++XO7iZdc0SQ7XQntWmcK+PJok14qB4lhAuLNJZ0R/uLpFffXILb34axKqKRo4d1/E ++kwz5uj/H9oK5iWAMH45DotnOldk7QLwHlIyAx9lorWvEO1S1WJqNLI4UngiDptyB ++zmoMIueTjTugQ3XIFamzzru438GLgOT7GHr3V94azKr3kO8+KzZS37RfT9aL+4uD ++e679fkRw0fKfCG3spoYIt645krG/N965017IoVffge0XIT/aT0tHSYVfxeddAYEP ++2mw7Fx3YrxGS70GOMoNn+9/newyHm/FQ2j7OR37l0tlY+cuuGR9Ct6kME/5Nz/pb ++RVJkI/n+cpfoaM/CYQu1mPiMZ/fe2B80wmubEZSOkPG2Ilzs6ug0LiF7cXkAXhE1 ++FrlW8ezpqHnuzBW8rImYsfmbHEoiff0+yk6HNXFJuRY08tL6SbYic+6b5+ZgpAvo ++isdyq395ytHuj0ZGAjRwmMsn7C/3e2L6DGxRY9sBQFok+TbiiYilBp8VP9gARbQe ++TWFyayBXaWVsYWFyZCA8bWFya0BrbG9tcC5vcmc+iQJRBBMBCgA7AhsBBQsJCAcC ++BhUKCQgLAgQWAgMBAh4BAheAFiEE7Dz+iPbKB4h3T1wdGqRL5knedgoFAlxN+5kC ++GQEACgkQGqRL5knedgrjvQ//RYuizq1PomB43yJPsE/I8oRdWDQE56KGuVu8v+EJ ++VziMippFzP9H2h9YWTRn+KlSuHQVHsLoQCzBM7nZFxIc7nYPSqQfUmh2TUeQ2fmB ++6NtOMyfOD/miWuxfBTknGzQIhuKRRgu7EMb7QM9LJDNMi7HYTYNrTPJTN5/Xv6zu ++BCu2keeaI8xPaQloUUsfwCmE++eOSs17gkU5MvH0XCPGHjTSzyLHqFd0D5H+6jYu ++mF5dMlB1eYEDAlqoG33RwJY3dvjdUWb3c3xDi1Ty1+P3YMW9+ovTipLggBy6C9lF ++383ABJZbR0Lp3TYv8WM0os8xGAXiG1a27qoiT9c5oj1CsR4m5FN04WWVG6JykTVT ++0HtYTuOwsco9UcV5ejbfbnWt1vaMOiq/egY7N1lQUqrLqIamgJQMQukXHLJaxMP+ ++ze5fEuNtyySOmVfhb8ic5kgKpCzc/7bhUjI++rh+LNXS20b/CuH3MNb2YKsv+IyI ++QRcnJ9vYTDbyJimzJyw8AuyvdpQRkOoae+f9B39ahzqQ2oslfUKs697EzjFyYmJt ++2nOWw6iW/TIuWDzQdjg98N2wzBk+fnlo5sPUYmE+YDY2Op2YQ4kEvz7SHOpd4thm ++gY0nbq8I+O05QlgC492YohCosm2pyuf2F3VVxnIS56DZMXiNWHADWYV+tBVhMmh2 ++bGu0Hk1hcmsgV2llbGFhcmQgPG1qd0ByZWRoYXQuY29tPokCTgQTAQoAOBYhBOw8 ++/oj2ygeId09cHRqkS+ZJ3nYKBQJcTfqnAhsBBQsJCAcCBhUKCQgLAgQWAgMBAh4B ++AheAAAoJEBqkS+ZJ3nYK6JIP/jGq2adAkk1IPsVx7X5argCXaI5o3aTG+N6BPMvi ++zGY4CyqTBmYAg3qRPWN4U+wxNFgzQ3nPfptJK6EDBAY4Lw+kKR4o8o5zPyjAjbc9 ++/be5bvTwMFmMbzWxGWoJ4ch9W+wD4W+W8ssnJDbVi5Btp7kKyUgg3KP7oUQpxZ9M ++TgmKEmPuce9zOQ78q+LIPbkhI9zCS/1VCHkeVyn+TrnACoHx7sKgJoOwjVlcbW3S ++0sdCuaGg3+VLI3v3IpQ56UXIX6RVeLX9zVDZnAq72Age4HHcxjX97j16iL5ZhZRc ++24J5tpSkJgHt+RASOKHJGPIivCqKbQKhYc1G4MbFbGzclaLTXya3Q4ekFzo4ohd2 ++ga7mgjG0SJ+aIU5wCYxEUDsqJLm+uH/nbQzXTxIoQhH5yub4OhW88z6LpwPGhLvz ++S2SuPJIXAlbGyrH70/uRZWkwKF/8mQjMCsLEYkZ9DRB815rUTc9CJkkeOlPXQUbx ++r2fDAgi0j3yAUxlrC7jESO/zUJrICbxChYAx9KMWG/2PsKbrGAAMKiC7+q6mY09Q ++63F/g1DEF2sb+bguMdWc7SEj64jFUf9wJ+vjU1F321Bkh/QWMABv6n+7EFkwnNky ++lCR5H1boOHO03TNT0jyLbBECR7/Mtpwt46c4+n9EPCmQyvdU3MVPORvZge1hzvuv ++fo22uQENBFxDuhkBCAC19Q021v7kTuwYKwEmbqQC5wvmbEMT4ldvQ8gWCUIFL9kT ++xM67IF0annsys+rrAyqqFUTq2onVmgjciu9upl6uDdV3wivCBEDN9ZLZAVHTSvii ++XDhnHUSg6EhCdZKhal9DKAi+vGSLSe14e2Kfoe4c6R0yDVI+Dn0OfUhlMXu2NoDS ++FLAdHsDHSCrE6xKO+BNgL2MPuMeXLhNitNIVrykoZMkFrUMcMsHrvrk05ah87RQO ++1e2ljenn8qxPRLdOVWc0TJiosjiy04vwDAYNUCPDL5W2Mp2bv2AeTPCzF1qkDnGK ++ZEqV2peWKCPB608lS1icw5oKtOl50PSgzTdaLVRXABEBAAGJAjYEGAEKACAWIQTs ++PP6I9soHiHdPXB0apEvmSd52CgUCXEO6GQIbDAAKCRAapEvmSd52Cpy8D/9tq4BQ ++3VwrDNCxycALqWvZSPv/AgsT6hRvQsLc6Yp0FEtz+frFPLWt7bylMrzKItpsr0G2 ++FofWw0yNyHNYPmGlCi+SrWLJnUTEm5TZgwT+9kLt/mJ4B0J1gHkknXSo91S84DPa ++ik9CH0GmXIQyPANkDDlmp9W/Hk8oKxxvCx+SSsZ6ANXakcNVg/w4MhDW2HowW4sB ++vtltOFSgPRs9zISiNw//GYjeYrdOOnieMhszwpjQuK5XYnDhwiSap2D8nQlD/VpA ++a2CvE/fOFV2CJyKZfE0J8v5DZOU+SUwnty1f52ZA1s/OCysaK1LLdCXz3bQiybQZ ++hobcAneBVZFlNzf6xpR+pGtw3OVSyLQo4LSQf4lFszNy8FfE+BJ1/yUWFBjljLwI ++Hd4IW7Y17PugAc19fQ23krOIc3O4qsuYzqdhzYzqGbPvf7fY3Tz0BNcW5885KEQJ ++H7VJJLqpf3EELhmkLBONYiF10iggFSmn8WSQWbXm0kGRETvAzf+FYcJsKDu9QASD ++RNck8J20ZJGVLbZNdP+VuLOXCDAkSGIxi91TLi6bY0Mb2yNRgAq6cnIJUTAbcnw0 ++5BLxRW+e8AS3HodjZHWzAMDPpZn5TFfJOXdDhdeePVGgkypxwnbeyTT3OjUEh37v ++r+XIgrTMpz+ZNpHxLr4bJatQEVK3H6Q3ZbQkMbkBDQRcQ7q3AQgAqSM4Wx4QvvCI ++f8is+57mLJhceB2kLt3VR67UFZC0ywcr5V0pvTuu2U1oUB+BVYC/A9UdnvWTyDef ++3xTCx0hAiiFhlMe6CkODOalmxI+KwPxD276+70tcxd8vR2FJviDQKw96f2hlLAnx ++R47GUp3cPfIgVfkvIXnXLMUJQvBhXeXqgYhOcAplI677n/zTeFjBtd/JqtyDoJ0D ++e1odEyC+ZZD/Jo5q80Sydhvb99BHQMgLTJTJPW1iRV2AK4xfBjxOMwqml9Lx4HRI ++pV/IHs3MTyhEpEA+I/eKpO6UxApHWHZ76Zm8BL8RwnfFaXjMueRhIGMFtJnLuNFc ++5mOLXa3uhwARAQABiQNsBBgBCgAgFiEE7Dz+iPbKB4h3T1wdGqRL5knedgoFAlxD ++urcCGwIBQAkQGqRL5knedgrAdCAEGQEKAB0WIQQSdoqWeVmQEHoNL9/8V+PMrNma ++eAUCXEO6twAKCRD8V+PMrNmaeEvuB/92qMj2mQN3CXRQUTlmzVNUJLJAwzjRDoSt ++3kqDrACJ2N8JLSxWFeHmEmrrmFPUmXfBUkT+F2W+OrsJlUtwepuTYROgLNZebFQd ++jB38oqsj8RMKb5ikWntRUka2xhSDRBa0IlpxHBWLHS8nEx1x4HB4uYRK3IpWShAV ++mWk7jiATGJLFYJGVo4TBfM27zCty8/GQN/3A2DAJ2OJbiJ12ByTgzztGdhJ69H/Q ++UltkK7eJUGMjPwhpmp07lrolyUurbzaLMQow4SLo/ZIxa0nPC+AoMSk06teichCZ ++wIyiU/70S0c/uL3RFhnTbgWcdQkAVpWdkwFqIES4xG5QLUu85/WT7lMQALJKKuOO ++pbOeKvyLV16Oo70OTms/LbmXU9+bjCjz7QISuzhI4rua0onjQzBaRXFYkfCjBudW ++aEpy/wP5wk6QlqxLkeZNCk0TswksLxQjyO2XgBcOnrSsQIEJ7VICG9PDvtVzbrSB ++YMjoDo58AyniEMVANyUnFYl1YBlFt506PDh86ZEqlpbbReAsYfEuBQdBfJhWph9W ++ZgJDVtEHUAxaiqisvNEbz4xRIAsxX/OxnQMdD09Xs50yvl38ERIadacejtQnAIYe ++EaUBsgQk3rt0+g9lm6trD7P4FXYhUD9vml6/n8TGB3UJi3lKpX41GSUC1y+oPna8 ++p+EEmrm3BbB4fgnIkfYiEDNogvm2pe7nzUP7sNnE8RcyYcjUoEQ0Uo+HB6fk6NeB ++GKqaIKVexCcExnWKHvl0DZzGydvKx41nyzFI1sueg34LcWwpGHXzJyhmpjhNe1GO ++KtVGHCGKhKhppK4ntUZISciGh38wvKuFDohHO3JVZ9AhyRWKTuynzLarBpmvu11T ++Dbv0lfnZcghlWWHNlx8x8DdaEuFWXZTDuVXqGclmeV2hS0LomX33LCB4n0XkZtC9 ++LsmTIsr+ZdVCAXUeX/pJONNxNF8G47lZLLgLWF9beuHWp3u1Io31fzh44TZxm1Z3 ++1wCZjOrsL9bvy3xHyDFaDL+/7i6TXsSxtqTXuQENBFxDu6IBCACgVJJnY8zh8uHn ++8d/E7p4j+9ueTvTHMRYOS0kkGhHBC7JmxCw6/EvbnbTsI0CQeyIJHlmPIqDVgRVj ++ijcTWacd3vIdazzH9sqs65nl49yMnA23tIya4VWlbHC3J4x/LL84A4GaJO/FVF2v ++v6hVg3IGbopp5KX+pr6s56TiWddSDqMgjb7rSzjWuNyRK75ToctL7Y/Zn6st3Zio ++O7LXq3ghkWf8JR7ZaUFIY6P1qS5heiCHP0PxQJSrtpYzH3rKJoHpIkjxnsB/sD0C ++05cAdlzXBTUVTNLY+DPlQ7FeRkG+VK91briG4tvQ8ohhEiC9HuJu1AKMNWBZ9qeU ++wsXaJvNzABEBAAGJAjYEGAEKACAWIQTsPP6I9soHiHdPXB0apEvmSd52CgUCXEO7 ++ogIbIAAKCRAapEvmSd52Ch8ZD/9wKuIlaRMSB1AMCwhGPaqXZahrJ649Y0jI4Jqp ++FKv2/U5hKHOG7bihRAeEj7pZzhlgBrkZg1SBdZ3vHs1ufElnfe5RQApdDm93daU5 ++SP29iEivJQxKjF91EfEffl0trxxztBipI5/2D+kaS8cnNVfzo5ZEWy/cd6AShvRV ++HM7Y2QHc+mlaZhYhBvTtwC6avXNnG55WYgobGENeAwkyD072JF3XrxFb+XkcKxla ++9yRdWdHxJd5PYJqsKM+nVeJM226OwOyU235gfIhIP6pfGqF9UVH0uFoCYkVkUSjV ++d96Q+Cj0kdhTOrtLW1OY11d9TBxje42GOtc7X9Zzx1nhwU8rCCErF9/uJIJKlq7I ++08rMX3rFDTtizwN7g7ZBkDDiZO+BIKQPt/awA9NM+tda02hyfQokBBi+v8b/iKif ++KIfUaqPDo1PA5uxljdluyX8AXIotKjJXF6Elsiz7bVpcIc0ZXOOFr9ylmtZm51YN ++mOzDNznEBmol2oBZfsk2G55/QgShHmKUnvzKANBGfnfS/a/K7Hv4sfZAb58Prl6O ++mQSrkmhzFry/4BNLKq+nd4s8VXkJPpx3Ogf3DoIynqpNF0bwf52U5IgJSNcJN/Hr ++AwhaG1W+Y3LDe7S19M0cUzftEUeq3Jd89hoijC72tdba+BRfW0ncfvEcsk9QifSU ++1tvZxQ== ++=DlFV ++-----END PGP ARMORED FILE----- diff --cc debian/watch index 0000000,0000000..4d49d72 new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,3 @@@ ++version=4 ++ ++opts=pgpsigurlmangle=s/$/.sig/ https://sourceware.org/elfutils/ftp/(\d.\d*)/elfutils-(.*).tar.bz2